题解 | #合并两个有序的数组#

合并两个有序的数组

https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
        int i = m-1;//A数组的末尾
        int j = n-1;//B数组的末尾
        int k = m+n-1;//A数组拼接后的末尾
        //两个数组都有数据时
        while(i >=0 && j >= 0){
            if( A[i] <= B[j] ){
                A[k]= B[j];
                k--;
                j--;

            }else if(A[i]>B[j]){
                A[k] = A [i];
                k--;
                i--;
            }
        }//此时循环结束,其中一个数组已走完
        //B先走完,A里面可以保持不变
        //如果A里面先走完,需要将B中剩余的放进A中
        while(j>=0){
            A[k]=B [j];
            k--;
            j--;
        }

    }
}
全部评论

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务