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.
1 class Solution { 2 public: 3 void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { 4 if(nums1.empty()||nums2.empty()) 5 return; 6 int idx1=m-1; 7 int idx2=n-1; 8 int len=m+n-1; 9 while(idx1>=0&&idx2>=0) 10 { 11 if(nums1[idx1]>=nums2[idx2]) 12 nums1[len--]=nums1[idx1--]; 13 else 14 nums1[len--]=nums2[idx2--]; 15 } 16 while(idx2>=0) 17 nums1[len--]=nums2[idx2--]; 18 } 19 };