Leetcode 88 Merge Sorted Array

2018-01-12 14:58:53 浏览数 (2)

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

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

归并两个有序数组,当然不能用现成的函数。

从结尾开始扫描,先放大的数,这样可以避免覆盖前面的空间。

代码语言:javascript复制
class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        int e1=m-1,e2=n-1,e3=m n-1;
        while(e1>=0 || e2>=0)
        {
            if(e1==-1) 
                nums1[e3--]=nums2[e2--];
            else if(e2==-1)
                nums1[e3--]=nums1[e1--];
            else if(nums1[e1]>nums2[e2])
                nums1[e3--]=nums1[e1--];
            else
                nums1[e3--]=nums2[e2--];
        }
    }
};

0 人点赞