陣列中的逆序對(C 牛客網)

2021-10-05 14:08:07 字數 567 閱讀 1103

參考**:

解題思路:

(1)使用歸併排序,具體可參考上面那本書,注意每次交換copy和data,這樣可以避免拷貝從而節約時間

(2)這裡需要注意的是,在牛客網中,下面**中的三處取模,一處都不可以少!!!

class solution 

int inversepairscore(vector&data, vector©,int begin, int end)

while(i>=begin) copy[index--]=data[i--];

while(j>=mid+1) copy[index--]=data[j--];

return (left+right+count)%1000000007;

}};

(3)組合(超時)

class solution  else if(k==0) return;

for(int i=l;idata) ;

helper(data,v,0,2,0);

return count;

}};

牛客網 陣列中的逆序對

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 最直接的想法,是兩個for迴圈巢狀,求解所有的逆序對,但是複雜度太高。後參考陣列中的逆序對,利用了...

陣列中的逆序對 牛客網

題意理解 給定乙個陣列,求逆序對的個數,所謂逆序對是指i j,但是aj ai.問題分析 歸併排序,複雜度降到o nlgn 細節1 歸併過程是先排序子陣列內部,再排序子陣列之間。細節2 排序子陣列內部,需要用到額外的空間,用輔助陣列作原始陣列,用當前陣列儲存一趟歸併的結果。細節3 排序子陣列之間的方法...

牛客網 劍指office 陣列中的逆序對

題目 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 思路 歸併排序。先將陣列分為若干個長度相等的子陣列,然後在合併子陣列的時候進行排序 並統計逆...