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

合并两个有序的数组

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

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        /*//直接插入排序
        int i=0,j=0;
        while(j<n)
        {
            while(A[i]<=B[j]&&i<m+j)
                i++;
            for(int t=m+j; t>i; t--)
                A[t]=A[t-1];
            A[i++]=B[j++];
        }
        */
        //第二种,直接在A上从后往前操作
        int i=m-1,j=n-1,k=m+n-1;
        while(i>=0&&j>=0)
        {
            if(A[i]>B[j])
                A[k--]=A[i--];
            else
                A[k--]=B[j--];
        }
        while(i>=0)
                A[k--]=A[i--];
        while(j>=0)
                A[k--]=B[j--];
    }
};
全部评论

相关推荐

头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务