88.Merge Sorted Array
1.Description(Easy)
Given two sorted integer arrays A and B, merge B into A as one sorted array.
Notice
You may assume that A has enough space (size that is greater or equal tom+n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
Example
A =[1, 2, 3, empty, empty], B =[4, 5]
After merge, A will be filled as[1, 2, 3, 4, 5]
2.Code
Merge two sorted array是正向扫描,这个题目是反向扫描。
因为在A数组里预留了空间
public void mergeSortedArray(int[] A, int m, int[] B, int n) {
int indexA=m-1;
int indexB=n-1;
int index=m+n-1;
while(indexA>=0 && indexB>=0){
if(A[indexA]>B[indexB]){
A[index]=A[indexA];
indexA--;
}else{
A[index]=B[indexB];
indexB--;
}
index--;
}
while(indexA>=0){
A[index--]=A[indexA--];
}
while(indexB>=0){
A[index--]=B[indexB--];
}
}Last updated
Was this helpful?