题解 | #整型数组合并#

整型数组合并

https://www.nowcoder.com/practice/c4f11ea2c886429faf91decfaf6a310b

#include <iostream>
using namespace std;
int main() {
    int a, b;
    cin >> a;
    int c[a];
    for (int i = 0; i < a; i++)
        cin >> c[i];
    for (int i = a; i > 0; i--)
        for (int j = 1; j < a; j++)
            if (c[j - 1] > c[j]) {
                int k = c[j];
                c[j] = c[j - 1];
                c[j - 1] = k;
            }
    for (int k = 0; k < a; k++)
        for (int i = a - 1; i > 0; i--)
            if (c[i - 1] == c[i]) {
                for (int j = i; j < a; j++)
                    c[j - 1] = c[j];
                a--;
            }
    cin >> b;
    int d[b];
    for (int i = 0; i < b; i++)
        cin >> d[i];
    for (int i = b; i > 0; i--)
        for (int j = 1; j < b; j++)
            if (d[j - 1] > d[j]) {
                int k = d[j];
                d[j] = d[j - 1];
                d[j - 1] = k;
            }
    for (int i = b - 1; i > 0; i--)
        if (d[i - 1] == d[i]) {
            for (int j = i; j < b; j++)
                d[j - 1] = d[j];
            b--;
        }
    int e[a + b], f = 0;
    for (int i = 0, j = 0; i < a || j < b; f++) {
        if (j < b && ((i >= a) || (c[i] > d[j]))) {
            e[f] = d[j];
            j++;
            continue;
        }
        if ((i < a) && (j >= b || (c[i] < d[j]))) {
            e[f] = c[i];
            i++;
            continue;
        }
        if (c[i] == d[j]) {
            e[f] = c[i];
            i++;
            j++;
            continue;
        }
    }
    for (int k = 0; k < f; k++ )
        cout << e[k] ;
}

全部评论

相关推荐

一天代码十万三:这个学历有中大厂实习也是0面,没办法,斩杀线是这样的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客63735620...:只会51能找到工作我吃,了解基本通信协议也远远不够,最最起码得会个stm32吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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