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

合并两个有序的数组

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

从后往前遍历,查看当前A和B数字中哪个最后面的数比较大,就把它放在A数组的对应位置(第m+n个位置)

public:
    void merge(int A[], int m, int B[], int n) {
        for(int i=m+n-1;i>=0;i--){
            if(m>0&&n>0){
                if(A[m-1]>B[n-1]){
                    A[i]=A[m-1];
                    m--;
                }else{
                    A[i]=B[n-1];
                    n--;
                }
            }
            else if(n>0) A[i]=B[n-1],n--;
            //A有剩余不用管,因为已经在A数组的对应位置了
        }
    }
};
全部评论

相关推荐

本2硕9,秋招不想努力海投了
小何和:行情再不好也不可能拒绝你,不可能只要双9的
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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