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

合并两个有序的数组

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

/*
class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        for(int i=0;i<n;i++){
            A[m+i]=B[i];
        }
        sort(A,A+m+n);
    }
};
*/

//双指针法
class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int a=m-1;//指向A最后一个元素
        int b=n-1;
        int i=m+n-1;//指向A空间的最后一个位置
        while(a>=0&&b>=0){
           if(A[a]>B[b]){
                A[i--]=A[a--];
           }
           else{
                A[i--]=B[b--];
           }
        }
           if(a<0){
                while(b>=0)
                    A[i--]=B[b--];
           }
    }
};

全部评论

相关推荐

03-31 16:42
已编辑
郑州西亚斯学院 后端
Java抽象带篮子:你简历少了几个模块看上去就感觉信息很少,简历怎么写可以看看我发的帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务