LEETCODE 88. 合并两个有序数组

LEETCODE 88. 合并两个有序数组_第1张图片

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        int n1,n2;
        n1=m-1;
        n2=n-1;
        int t=m+n-1;
        while(n1>=0 && n2>=0){
            if(nums1[n1]>=nums2[n2]){
                nums1[t--]=nums1[n1--];
            }
            else{
                nums1[t--]=nums2[n2--];
            }
        }
        while(n1>=0){
            nums1[t--]=nums1[n1--];
        }
        while(n2>=0){
            nums1[t--]=nums2[n2--];
        }        
    }
};

LEETCODE 88. 合并两个有序数组_第2张图片
利用空余空间,通常是从前往后,试试从后往前

你可能感兴趣的:(leetcode,算法)