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

合并两个有序的数组

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++;
            }
        }
    }
};

全部评论

相关推荐

09-17 10:53
四川大学 C++
loveTy:你这些技能对大厂没用,而且四川大学因为之前地铁那个事件上了不少民营企业的黑名单。 去试一试国企,他们的黑名单没民营那么狠
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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