问题描述:
算法思想:
对两个数组从后往前搜索,比较两个值的大小,把最大的值放在最后,直到两个数组全部遍历完成。
代码:
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int off = m + n - 1;
while (off >= 0)
{
if (m <= 0)
{
nums1[off] = nums2[n - 1];
n--;
}
else if (n <= 0)
{
nums1[off] = nums1[m - 1];
m--;
}
else if (nums1[m - 1] <= nums2[n - 1])
{
nums1[off] = nums2[n - 1];
n--;
}
else
{
nums1[off] = nums1[m - 1];
m--;
}
off--;
}
}
};