LeetCode - Merge Sorted Array

来源:互联网 发布:全方位安全软件 编辑:程序博客网 时间:2024/06/07 01:21

题意

把两个排好序的数组合并到第一个里。

思路

从后面开始合并,这样不用移动原来数组中的元素。

代码

  1. class Solution {
  2. public:
  3. void merge(int A[], int m, int B[], int n)
  4. {
  5. int i = m - 1, j = n - 1, pos = m + n - 1;
  6. while (1)
  7. {
  8. if (j < 0)
  9. {
  10. while (i >= 0) A[pos--] = A[i--];
  11. break;
  12. }
  13. if (i < 0)
  14. {
  15. while (j >= 0) A[pos--] = B[j--];
  16. break;
  17. }
  18. if (A[i] < B[j]) A[pos--] = B[j--];
  19. else A[pos--] = A[i--];
  20. if (pos < 0) break;
  21. }
  22. }
  23. };
0 0
原创粉丝点击