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 int i = m-1; 5 int j = n-1; 6 int k = m+n-1; 7 8 while(k>=0) 9 { 10 11 if(i>=0 && j >= 0) 12 { 13 if(nums1[i] >= nums2[j]) 14 { 15 nums1[k] = nums1[i]; 16 i--; 17 } 18 else 19 { 20 nums1[k] = nums2[j]; 21 j--; 22 } 23 } 24 else if(i >= 0) 25 { 26 nums1[k] = nums1[i]; 27 i--; 28 } 29 else if(j>=0){ 30 nums1[k] = nums2[j]; 31 j--; 32 } 33 k--; 34 } 35 } 36 };