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

合并两个有序的数组

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

从尾巴开始遍历,比较两个数组尾巴的最大值,然后把该最大值放进去,同时维护指针

public void merge(int A[], int m, int B[], int n) {
    m--;
    n--;
    for (int i = 0; i < A.length; i++) {
        //睡醒的时候想到了,从尾巴开始,把最大的数放进去
        if (n >= 0 && (m < 0 || B[n] > A[m])) {
            A[A.length - 1 - i] = B[n--];
        } else {
            A[A.length - 1 - i] = A[m--];
        }
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务