题解 | #有序序列合并#
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
int main() { int m, n; int arr1[2000], arr2[1000]; scanf("%d%d", &m, &n); for (int i = 0; i < m; i++) { scanf("%d", &arr1[i]); } for (int i = 0; i < n; i++) { scanf("%d", &arr2[i]); } int mn = m + n-1, m_ = m-1, n_ = n-1; while(1) { if (arr1[m_] <= arr2[n_]) { arr1[mn] = arr2[n_]; mn--; n_--; } else { arr1[mn] =arr1[m_]; mn--; m_--; } if (n_ == -1) { break; } if(m_==-1) { for (int i = mn; i >= 0;i--) { arr1[i] = arr2[n_]; n_--; } break; } } for (int i = 0; i <m+n; i++) { printf("%d ", *(arr1 + i)); } return 0; }