Merge Sorted Array
思路:当从前遍历nums1时每一次需要移动数组下标后所有元素,但是直接从后向前遍历则可以避免这种情况,这里需要注意nums1是空的情况
class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int ia=m-1, ib=n-1, cur = m+n-1; while(ia >= 0 && ib >= 0) nums1[cur--] = (nums1[ia] > nums2[ib]) ? nums1[ia--] : nums2[ib--]; //in case nums1 is empty while(ib >= 0) nums1[cur--] = nums2[ib--]; } };

浙公网安备 33010602011771号