解析
分别维护指向两个数组的指针,不断往后增加指针即可,主要是边界,然后时间复杂度是。
代码
class Solution {
public:void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {vector <int> newNums;for(int i = 0; i<m+n;i++){newNums.push_back(0);}if(m == 0){nums1 = nums2;}else if(n == 0){}else{int i = 0;int j = 0;for(int k = 0; k < m+n;k++){if(i == m){newNums[k] = nums2[j];j++;continue;}if(j == n){newNums[k] = nums1[i];i++;continue;}if(nums1[i] < nums2[j]){newNums[k]=nums1[i];i++;}else{newNums[k]=nums2[j];j++;}}nums1 = newNums;}}
};