归并。不过是从后向前。因为不能再开数组。

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        
        int i=n+m-1;
        n--;
        m--;
        for(;i>=0;i--){
            if(n<0){
                nums1[i]=nums1[m--];
                
            }
            else if(m<0){
                nums1[i]=nums2[n--];
            }
            else if(nums1[m]<nums2[n]){
                nums1[i]=nums2[n--];
            }
            else{
                
                nums1[i]=nums1[m--];
            }
        }
    }
};
View Code

 

posted on 2018-05-20 21:53  苛性氢  阅读(137)  评论(0编辑  收藏  举报