题意:归并两个有序数组,把归并结果存到第一个数组上。
class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int pos1 = m - 1; int pos2 = n - 1; int len = m + n - 1; while(pos1 >= 0 || pos2 >= 0){ if(pos2 < 0){ nums1[len--] = nums1[pos1--]; } else if(pos1 < 0){ nums1[len--] = nums2[pos2--]; } else if(nums1[pos1] >= nums2[pos2]){ nums1[len--] = nums1[pos1--]; } else{ nums1[len--] = nums2[pos2--]; } } } };