简单的分治思想,典型的归并排序,大多数数据结构或者算法书上应该都有,就不做过多
介绍了,直接上代码
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
vector<int> temp;
int i = 0, j = 0;
while(i < m && j < n)
{
if(nums1[i] <= nums2[j])
{
temp.push_back(nums1[i++]);
}
else
{
temp.push_back(nums2[j++]);
}
}
while(i < m)
{
temp.push_back(nums1[i++]);
}
while(j < n)
{
temp.push_back(nums2[j++]);
}
nums1.clear();
for(i = 0; i < m + n; ++i)
{
nums1.push_back(temp[i]);
}
}
};