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

合并两个有序的数组

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

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        if(!A)
            A = B;
        if(!B)
            return;
        int* p_a = A + m - 1;
        int* p_b = B + n - 1;
        int* p = A + m + n - 1;
        while(p_a >= A && p_b >= B){
            if(*p_a > *p_b)
                *p-- = *p_a--;
            else
                *p-- = *p_b--;
        }
        while(p_a >= A)
            *p-- = *p_a--;
        while(p_b >= B)
            *p-- = *p_b--;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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