import java.util.*;
public class Solution {
public void merge(int A[], int m, int B[], int n) {
int i = m - 1;
int j = n - 1;
int index = m + n - 1;
while(index>=0&&i>=0&&j>=0){
//从后往前放,将B【n-1】与A【m-1】比较,大的放下,指针-1
if(B[j] > A[i]){
A[index] = B[j];
j--;
index--;
}else{
A[index] = A[i];
i--;
index--;
}
}
//若b还没到头,说明A放完了,把剩下的b覆盖到头部即可
if(j>=0){
for(int k = j; k>=0; k--){
A[k] = B[k];
}
}
}
}
思路见注释


京公网安备 11010502036488号