【牛客题霸每日一题】NC22 合并两个有序数组 C++ 题解

归并排序就是用的这样的思路,每次比较两个数组的第一个元素,并将较小的一个存入新数组,从原数组删除,然后继续比较两个数组的第一个元素,以此类推。
代码如下:
class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        vector<int> c;
        int i = 0, j = 0;
        while(i < m && j < n) {
            if(A[i] < B[j]) {
                c.push_back(A[i]);
                i++;
            } else {
                c.push_back(B[j]);
                j++;
            } 
        }
        while(i < m) {
            c.push_back(A[i]);
            i++;
        }
        while(j < n) {
            c.push_back(B[j]);
            j++;
        }
        for(int i = 0; i < n + m; i++) {
            A[i] = c[i];
        }
    }
};


#题解##牛客题霸#
全部评论

相关推荐

有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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