合并两个有序的数组

合并两个有序的数组

http://www.nowcoder.com/questionTerminal/89865d4375634fc484f3a24b7fe65665

做法

  • 先确定合并数组后数组的大小
    从后往前赋值,依次比较A和B数组较大的值赋值过去
    如果A、B数组中其中一个数组已经全部赋值过去,那么另一个数组剩余值从后往前依次赋值即可

时间复杂度

代码

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int cnt=n+m-1;
        n--,m--;
        for(int i=cnt;i>=0;i--){
            if((m>=0&&A[m]>B[n])||n==-1) A[i]=A[m--];
            else A[i]=B[n--];
        }
    }
};
全部评论

相关推荐

评论
3
收藏
分享

创作者周榜

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