这道题完全不按题意做,先把后面的0消除了,然后插入排序,current_i记录最后一次插入的位置,可以提升速度
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int current_i = 0;
nums1.erase(nums1.begin() + m,nums1.end());
for (int i = 0; i < n; ++i) {
while ((current_i<(i+m))&&nums2[i] > nums1[current_i])++current_i;//find the pos that nums[i]>=
nums1.insert(nums1.begin() + current_i, nums2[i]);
//nums1.erase(nums1.end());
}
}
};