思路:
- 双指针
- 将nums1和nums2数组中的数从大到小放在nums1的末尾
- 时间复杂度O(m+n)
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int p1=m-1;
int p2=n-1;
int p=m+n-1;
while (p1>=0&&p2>=0){
nums1[p--] = nums1[p1] > nums2[p2] ? nums1[p1--] : nums2[p2--];
}
while (p2>=0) {
nums1[p--] = nums2[p2--];
}
}
};