题目
https://leetcode-cn.com/problems/sorted-merge-lcci/
解题思路
合并排序没什么好说的。。。
代码
class Solution {
public:
void merge(vector<int>& A, int m, vector<int>& B, int n) {
int i = 0; // A位置游标
int j = 0; // B位置游标
int k = 0; // 临时位置游标
vector<int> t(m + n); // 临时数组
// 合并
while(i < m && j < n){
if(A[i] > B[j]){
t[k] = B[j++];
}else{
t[k] = A[i++];
}
k++;
}
// 处理A中剩余元素
while(i < m){
t[k++] = A[i++];
}
// 处理B中剩余元素
while(j < n){
t[k++] = B[j++];
}
// 放回到A中
for(k = 0; k < m + n; k++){
A[k] = t[k];
}
}
};