题目:
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
解答:
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
vector<int> tmp = nums1;
nums1.clear();
int i = 0;
int j = 0;
while (i < m) {
while (j < n && nums2[j] < tmp[i]) {
nums1.push_back(nums2[j++]);
}
nums1.push_back(tmp[i++]);
}
while (j < n) {
nums1.push_back(nums2[j++]);
}
}
};