题解 | #合并两个有序数组#

合并两个有序的数组

https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665?tpId=295&tqId=658&ru=%2Fpractice%2F11ae12e8c6fe48f883cad618c2e81475&qru=%2Fta%2Fformat-top101%2Fquestion-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D295

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
      if (m == 0) {
        std::copy(B, B + n, A);
        return ;
      } else if (n ==0) {
        return ;
      }
      
      std::copy(A, A + m, A + n);
      int a = n, b = 0, fin = 0;
      
      while (b < n && a < m + n) {
        if (A[a] < B[b]) {
          A[fin] = A[a];
          ++a;
        } else {
          A[fin] = B[b];
          ++b;
        }
        ++fin;
      }
      
      while (b < n) {
        A[fin] = B[b];
        ++b;
        ++fin;
      }
      
      while (a < m + n) {
        A[fin] = A[a];
        ++a;
        ++fin;
      }
    }
};
全部评论
写的一坨屎,还是看看官方题解吧
点赞 回复 分享
发布于 2022-07-15 15:07

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务