劍指offer 題目36 陣列中的逆序對

2022-05-18 09:15:45 字數 571 閱讀 9327

陣列中任取兩個數字,如果前面的數字大於後面的數字稱為乙個逆序對

如:1,2,1,2,1 有3個逆序對

思路:知道o(n2)肯定是錯的。開始想hash,試圖找到o(n)的演算法,想了很久,找不到。後來想到排序,用原陣列與排好序的陣列對比,我寫的快排,還是不對。想了幾個小時,無奈看答案,原來是用變形的歸併排序。排序真是博大精深,換個樣子我就想不到了....

在牛客網上ac的**:腦子不清醒,各種小錯,提交了好多遍。

class

solution

void mymerge(vector &data, int & ans, int l, int m, int r, vector &v)

else

}while(i <=m)

v[k++] = data[i++];

while(j <=r)

v[k++] = data[j++];

for(k = 0; k < r - l + 1; k++)

data[k + l] =v[k];

}int inversepairs(vectordata)

};

劍指offer題目

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣...

劍指offer的題目

題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。分析 跳乙個n階台階的方法數 class solution 題目描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總...

劍指offer全套解答 劍指offer 36 45

36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...