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

合并两个有序的数组

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--];
    }
};
全部评论

相关推荐

葬爱~冷少:我当时都是上午刷力扣,下午背八股,有活给我先别急,没活就干自己的事情
点赞 评论 收藏
分享
劝退式:感觉有人回才是不正常的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务