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

合并两个有序的数组

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

因为数组A的大小可以容纳A+B,所以直接在数组A上原地操作。从后向前,分别比较数组A和数组B的对应元素,并从后向前填入到数组A,另外再处理两个数组中的剩余元素。

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int k=m+n-1,i=m-1,j=n-1;
        for(;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--];
    }
};
全部评论

相关推荐

11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务