NC22 合并两个有序的数组

https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665?tpId=117&rp=1&ru=%2Fexam%2Fcompany&qru=%2Fexam%2Fcompany&sourceUrl=%2Fexam%2Fcompany&difficulty=&judgeStatus=&tags=&title=&gioEnter=menu

代码


#include <type_traits>
class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        if(!n) return;
        int a = m-1;
        int b = n-1;
        int index = m + n - 1;
        while(a >= 0 && b >= 0){
            if(A[a] >= B[b]){
                A[index--] = A[a--];
            }else{
                A[index--] = B[b--];
            }
        }
        //如果B中存在比A中最小的还要小的数 则不会被全部拷贝
        while(b >= 0){
            A[index--] = B[b--];
        }
        
        return;
    }
};
posted @   xiazichengxi  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
主题色彩