1. 程式人生 > >leetcode之O(1)空間複雜度合併倆個數組

leetcode之O(1)空間複雜度合併倆個數組

這個題做得有點懷疑智商了,看了題,感覺題目的意思就是讓用O(1)的空間複雜度來做,

但是隻想到O(m*n)的時間複雜度的做法,感覺應該不是最優,就直接看答案了,果然不是最優,竟讓忘記

倒著把值放入陣列,呃,做的有點懷疑智商。

程式碼:

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int a=m-1,b=n-1,cur=m+n-1;
        while(a>=0&&b>=0){
            A[cur--]=A[a]>B[b]?A[a--]:B[b--];
        }
        while(b>=0)
            A[cur--]=B[b--];
    }
};