您的位置:首页 > 其它

leetcode--Merge Sorted Array

2017-08-08 10:03 405 查看
Given two sorted integer arrays nums1 and nums2, merge nums2 intonums1 as one sorted array.

Note:

You may assume that nums1 has enough space (size that is greater or equal tom + n) to hold additional elements from nums2. The number of elements initialized innums1 and nums2 are m and n respectively.

题意:合并两个排序的数组,要求新数组也是排序的

分类:数组,双指针

解法1:从后向前合并,这样避免了覆盖的问题。

[java] view
plain copy

public class Solution {  

    public void merge(int[] nums1, int m, int[] nums2, int n) {  

        int len = nums1.length;  

        int index = len-1;  

        int i=m-1,j=n-1;  

        while(i>=0&&j>=0){  

            if(nums1[i]>nums2[j]){  

                nums1[index] = nums1[i];  

                i--;  

            }else{  

                nums1[index] = nums2[j];  

                j--;  

            }  

            index--;  

        }  

        while(i>=0){  

            nums1[index--]=nums1[i--];  

        }  

        while(j>=0){  

            nums1[index--]=nums2[j--];  

        }  

    }  

}  

[java] view
plain copy

public class Solution {  

    public void merge(int[] nums1, int m, int[] nums2, int n) {  

        m = m-1;  

        n = n-1;  

        int i=nums1.length-1;  

        for(;m>=0&&n>=0&&i>0;i--){  

            if(nums1[m]>nums2
){  

                nums1[i] = nums1[m];  

                m--;  

            }else{  

                nums1[i] = nums2
;  

                n--;  

            }  

        }  

        while(m>=0){  

            nums1[i] = nums1[m];  

            m--;i--;  

        }  

        while(n>=0){  

            nums1[i] = nums2
;  

            n--;i--;  

        }  

    }  



原文链接http://blog.csdn.net/crazy__chen/article/details/46377359
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: