博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
88. Merge Sorted Array
阅读量:5949 次
发布时间:2019-06-19

本文共 1647 字,大约阅读时间需要 5 分钟。

一、题目

  1、审题

  2、分析

    给出有序整数数组 nums1、nums2,将 nums2 中元素放入 nums1 中,且使得nums1仍然有序,假使 nums1 空间足够大。

 

二、解答

  1、思路:

    方法一、

      将 nums1 与 nums2 依次进行比较,将小的数放在 nums1 从下标为 0 开始的位置,大的数值放入 nums2 并在nums2中进行排序。

      最终 nums2 中的 n 个数均比 nums1 中的 m 个数大,在将 nums2 数放入 nums1 即可。

public void merge(int[] nums1, int m, int[] nums2, int n) {                if(n == 0)            return;        if(m == 0) {            for (int i = 0; i < n; i++) {                nums1[i] = nums2[i];            }        }                    int i = 0;                while(i < m) {            if(nums1[i] > nums2[0]){                                int tmp = nums1[i];                nums1[i] = nums2[0];                                 int k = 1;                if(n == 1 || tmp <= nums2[k])                    nums2[0] = tmp;                else {                    while(k < n && tmp > nums2[k]){                        nums2[k-1] = nums2[k++];                    }                    nums2[k-1] = tmp;                }            }                        i++;        }        i = 0;        while(i < n)             nums1[m++] = nums2[i++];    }

  

  方法二、

    将 nums1 与 nums2 均从数组末尾开始比较,将大的数放在nums1从 m+n-1 的位置并依次向前。

  

public void merge(int[] nums1, int m, int[] nums2, int n) {                int i = m-1, j = n-1;        while(i >= 0 && j >= 0) {            if(nums1[i] >= nums2[j]){                nums1[i+j+1] = nums1[i];                i--;            } else {                nums1[i+j+1] = nums2[j];                j--;            }        }                while(j >= 0)            nums1[j] = nums2[j--];            }

 

  

转载于:https://www.cnblogs.com/skillking/p/9700770.html

你可能感兴趣的文章
我的友情链接
查看>>
python使用递归实现目录遍历
查看>>
android/java模拟登录正方教务系统
查看>>
iOS通过http post上传图片
查看>>
OpenStack Object Storage swift操作和实践
查看>>
伸展树的学习(三):源代码分析
查看>>
ES学习笔记之--ES的集群是如何组建起来的
查看>>
我的Linux生涯之YUM
查看>>
图书清单(看不完的电子书啊)
查看>>
Btrace
查看>>
瘦AP的初始化配置
查看>>
ONOS白皮书下篇之ONOS价值主张
查看>>
VSAN API 探索第 4 部分 – VSAN 磁盘映射
查看>>
从CALSSPATH加载properties文件
查看>>
asp.net GridView激发了未处理的事件“PageIndexChanging”的分析
查看>>
MPLS
查看>>
tar.xz文件如何解压
查看>>
jquery 给textarea赋值,firefox下出现[object XMLDocument]
查看>>
我的友情链接
查看>>
2014年首届CCF软件能力认证试题 题目二
查看>>