题解 | #整型数组合并#
整型数组合并
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] ; }