一、题目内容

image.png

二、题解

解法1:

思路

b合并到a,都是升序
所以从大到小合并
int i = m - 1, j = n - 1, k = m + n - 1;

代码

  1. public class Solution {
  2. public void merge(int A[], int m, int B[], int n) {
  3. int i = m - 1, j = n - 1, k = m + n - 1;
  4. while (i >= 0 && j >= 0) {
  5. if (A[i] > B[j]) {
  6. A[k--] = A[i--];
  7. } else {
  8. A[k--] = B[j--];
  9. }
  10. }
  11. while (j > 0) {
  12. A[k--] = B[j--];
  13. }
  14. }
  15. }