首页 > 【牛客题霸每日一题】NC22 合并两个有序数组 C++ 题解
头像
BNDSBilly
编辑于 2020-12-15 17:21
+ 关注

【牛客题霸每日一题】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];
        }
    }
};


全部评论

(0) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐