11.1---有序数组合并(CC150)

时间:2023-03-09 16:53:35
11.1---有序数组合并(CC150)

这道题比较简单,就是通过从后往前复制大的就可以了。最后比较注意的就是如果B还没复制完要记得接着复制。

import java.util.Arrays;

public class Solution{

    public static void main(String[] args){
int[] a = {2,4,5,0,0,0};
int[] b = {1,3,6}; merge(a,b,3,3);
System.out.println(Arrays.toString(a));
} public static void merge(int[] a, int[] b,int len1, int len2){
int lastA = len1 - 1;
int lastB = len2 - 1;
int flag = len1 + len2 - 1;
while(lastA >= 0 && lastB >= 0){
if(a[lastA] > b[lastB]){
a[flag--] = a[lastA--];
}
else{
a[flag--] = b[lastB--];
}
}
if(lastB >= 0){
a[flag--] = b[lastB--];
}
}
}