[LeetCode]Merge Sorted Array
Merge Sorted Array
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 nums1and 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 index = m+n-1; 5 int index1 = m-1; 6 int index2 = n-1; 7 while(index1>=0 && index2>=0) 8 { 9 if(nums1[index1]<nums2[index2]) 10 { 11 nums1[index--] = nums2[index2--]; 12 } 13 else 14 { 15 nums1[index--] = nums1[index1--]; 16 } 17 } 18 while(index1>=0) 19 { 20 nums1[index--] = nums1[index1--]; 21 } 22 while(index2>=0) 23 { 24 nums1[index--] = nums2[index2--]; 25 } 26 return; 27 } 28 };