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 };