题解 | #合并两个有序的数组#

合并两个有序的数组

http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

双指针。不开辟额外的空间。替换的思想。
往num1中方放数据,若num2先遍历完,就结束了(说明nums2中的数据都已经添加到num1中了),
若num1先遍历完,则将nums2中剩下的加入到num1中,完成。

public class Solution {
    public void merge(int nums1[], int m, int nums2[], int n) {
        int nums1End = m-1;
        int nums2End = n-1;
        int index = m+n-1;//合并后最后一个元素所在的位置

     while(nums1End >= 0 && nums2End >= 0)//AB合并,谁大就先放谁
            nums1[index --] = nums1[nums1End] > nums2[nums2End] ? nums1[nums1End --] : nums2[nums2End --];
        while(nums2End >= 0)//如果B没有遍历完,那么之间丢在A数组里面
            nums1[index --] = nums2[nums2End --];
    }
}
全部评论

相关推荐

09-17 17:33
门头沟学院 Java
阿里面试一直在聊天是不是就是kpi了
offer收割机jo...:应该不是KPI,因为好多人阿里简历都过不去
我的秋招日记
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-19 14:43
实习之后才知道团队氛围的重要性来了一周,从第三天就开始想离职……团子背景、薪资福利再怎么好,也不香了
码农索隆:确实,团队的氛围真的很影响心情,好的团队上班感觉轻松愉快,不好的团队,每天没事就整点幺蛾子
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务