题解 | #有序序列合并#
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
#include <iostream> using namespace std; int main() { int n1, n2; cin >> n1 >> n2; int arr1[n1], arr2[n2]; for (int i = 0; i < n1; i++) { cin >> arr1[i]; } for (int i = 0; i < n2; i++) { cin >> arr2[i]; } int arr3[n1 + n2]; int i = 0, j = 0, k = 0; for (i = 0; i < n1 + n2; i++) { if (arr1[j] < arr2[k] && j < n1 && k < n2) { arr3[i] = arr1[j]; j++; } else if (arr1[j] >= arr2[k] && j < n1 && k < n2) { arr3[i] = arr2[k]; k++; } else { break; } } if (j < n1) { while (i < n1 + n2) { arr3[i] = arr1[j]; i++; j++; } } else if (k < n2) { while (i < n1 + n2) { arr3[i] = arr2[k]; i++; k++; } } for (int i = 0; i < n1 + n2; i++) { cout << arr3[i] << " "; } return 0; }