数组(简单
88. 合并两个有序数组
方法一
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int l = 0, r = 0;
vector<int> res;
while(l < m && r < n){
if(nums1[l] < nums2[r]){
res.push_back(nums1[l]);
l++;
}
else{
res.push_back(nums2[r]);
r++;
}
}
while(l < m){
res.push_back(nums1[l]);
l++;
}
while(r < n){
res.push_back(nums2[r]);
r++;
}
nums1 = res;
}
};
方法二
class Solution {
public:
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
int len1 = m-1, len2 = n-1, len = m+n-1;
while(len1 >= 0 && len2 >= 0){
if(nums1[len1] < nums2[len2]){
nums1[len] = nums2[len2];
len2--;
}
else{
nums1[len] = nums1[len1];
len1--;
}
len--;
}
while(len2 >= 0){
nums1[len] = nums2[len2];
len--; len2--;
}
}
};