class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int p1 = m-1, p2 = n-1, p = m + n - 1;
while(p1 >= 0 && p2 >= 0){
if(nums2[p2] > nums1[p1]){
nums1[p--] = nums2[p2--];
}
else
nums1[p--] = nums1[p1--];
}
while(p2 >= 0){
nums1[p--] = nums2[p2--];
}
}
};
这道题题目比较坑, 没看实例我就做了,后来发现第一个vector并不是完全有序的,后面有好几个0
m, n分别表征的真正有序的长度,而且这里肯本用不到vector,数组就可以了啊
原来num1足够大的意思是数组足够长,这还是按时当做数组做