Leetcode-合并两个有序数组

18.合并两个有序数组

题目内容:

Leetcode-合并两个有序数组

 

代码及思路:

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        if(m==0)
            nums1=nums2;
        if(n==0)
            nums1=nums1;
        int index1=m-1;
        int index2=n-1;
        int index=m+n-1;
        while(index1>=0&&index2>=0)
        {
            if(nums1[index1]>nums2[index2])
                nums1[index--]=nums1[index1--];
            else
                nums1[index--]=nums2[index2--];
        }
        //如果长度另一个为零
        if(index1>=0)
        {
            while(index1>=0)
            {
                nums1[index--]=nums1[index1--];
            }
        }
        if(index2>=0)
        {
            while(index2>=0)
            {
                nums1[index--]=nums2[index2--];
            }
        }
    }
};