思路:从后往前比,然后处理剩下的元素。
因为不允许使用多余的数组空间,就不好对两个数组从前往后进行比较(插入位置比较麻烦)
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
while(m>0&&n>0)
{
if(nums1[m-1]>nums2[n-1])
{
nums1[n+m-1]=nums1[m-1];
m--;
}
else
{
nums1[n+m-1]=nums2[n-1];
n--;
}
}
while(n>0)
{
nums1[n-1]=nums2[n-1];
n--;
}
}
};
[LeetCode]Merge Sorted Array(合并两个有序的数组)
最新推荐文章于 2024-08-08 22:07:05 发布