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

合并两个有序的数组

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

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int* start_a = A;
        int* start_b = B;
        int* end_a = A + m - 1;
        while ((m != 0) && (n != 0))
        {
            if (*start_a > *start_b)
            {
                for (int *cur = end_a; cur >= start_a; cur--)
                    *(cur + 1) = *cur;
                *start_a = *start_b;
                start_b++;
                start_a++;
                end_a++;
                n--;
            }
            else
            {
                start_a++;
                m--;
            }
        }
        if (m == 0)
        {
            end_a++;
            for (int i = 0; i < n; i++)
            {
                *end_a = *start_b;
                end_a++;
                start_b++;
            }
        }
    }
};

全部评论

相关推荐

盖茨伯爵:一样兄弟,我从4月开始发到现在了,都三四百个了
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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