版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/glw0223/article/details/88828948
分析
- 逆向的思维,从后向前去填充数据
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int pos = m + n - 1;
m-=1;
n-=1;
while (m >= 0 && n >= 0)
{
if(nums1[m] > nums2[n]) {
nums1[pos--] = nums1[m--];
}
else{
nums1[pos--] = nums2[n--];
}
}
while (n >= 0)
{
nums1[pos--] = nums2[n--];
}
}
};