很简单...都做过...

不过让就用A,B这两个数组,一下忘了...

思维习惯就是去选小的啦,其实我们可以选大的放到最后不就好处理了!

 

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int last = m + n - 1;
        m--;n--;
        while(m >= 0 && n >=0){
            if(A[m] > B[n]){
                A[last] = A[m];
                m--;
            }else{
                A[last]= B[n];
                n--;
            }
            last--;
        }
        if(n >= 0){
            while(last >= 0){
                A[last] = B[n];
                last--;
                n--;
            }
        }
    }
};

 

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int size = m + n - 1;
        m--; n--;
        while(m >= 0 && n >= 0) {
            if (A[m] > B[n]) {
                A[size--] = A[m];
                m--;
            } else {
                A[size--] = B[n];
                n--;
            }
        }
        while(n >= 0) A[size--] = B[n--];
    }
};

 

相关文章:

  • 2021-08-19
  • 2021-10-19
  • 2021-11-30
  • 2021-07-20
猜你喜欢
  • 2022-01-20
  • 2022-02-07
  • 2021-11-23
  • 2021-06-03
  • 2021-05-31
  • 2021-09-01
  • 2021-11-03
相关资源
相似解决方案