题目
题解
- 不利于有序
先插入后排序 - 利用有序
从后往前插入,比较nums1和nums2最后一位有效位,进行swap操作
代码
// class Solution {
// public:
// void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
// for(int i=0;i<n;i++){
// nums1[i+m]=nums2[i];
// }
// sort(nums1.begin(),nums1.end());
// }
// };
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int i = nums1.size() - 1;
m--;
n--;
while (n >= 0) {
while (m >= 0 && nums1[m] > nums2[n]) {
swap(nums1[i--], nums1[m--]);
}
swap(nums1[i--], nums2[n--]);
}
}
};