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

合并两个有序的数组

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

  void merge(int A[], int m, int B[], int n) {
        //直接合并的话A中元素会有覆盖的问题。
        //那么我们就倒着来归并就不会有覆盖的问题了,注意细节实现,考虑周全就好了。
        int indexa=m-1;
        int indexb=n-1;
        int end=m+n-1;
        while(indexb>=0 && indexa>=0)
        {
            if(A[indexa]>B[indexb])
            {
                A[end]=A[indexa];
                indexa--;
            }else
            {
                A[end]=B[indexb];
                indexb--;
            }
            end--;
        }
        while(indexb>=0)
        {
        A[indexb]=B[indexb];
        indexb--;
        }

    }

全部评论

相关推荐

白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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