題意:混合插入有序數(shù)組。
分析:
一開始沒看懂題意,就先把兩個數(shù)組合并再輸出,沒有注意合并后的數(shù)組的長度為m+n;
可以從后往前附值,比較nums1和nums2最后一個元素的大小,把大的那一個放入m+n-1的位置中, 以此類推。如果nums1中所有元素都比nums2中的大,就把nums2填入剩下的位置中。如果nums1中所有元素都比nums2中小,那么前m個還是原來nums1的元素。
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int c = m + n - 1;
m--;
n--;
while(m >=0 && n >= 0)
{
nums1[c--] = nums1[m] > nums2[n] ? nums1[m--] : nums2[n--];
}
while (n >= 0)
{
nums1[c--] = nums2[n--];
}
}
};