leetcode 88 合并两个有序数组 (Merge Sorted Array)

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

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

猜你喜欢

转载自www.cnblogs.com/azureice/p/leetcode88.html