【題目描述】
Find K-th largest element in an array.
Notice:You can swap elements in the array
在數(shù)組中找到第k大的元素
注意:你可以交換數(shù)組中的元素的位置
【題目鏈接】
http://www.lintcode.com/en/problem/kth-largest-element/
【題目解析】
sort的方法:一開始看到這道題肯定覺得很簡單,只要sort一下,然后return特定index的value就可以了信夫,但是sort的time complexity至少是O(nlogn)
Quick Select:這個是由quick sort演化而來,用到了partition的部分,每次選一個pivot,小于它的放左邊祟滴,大于它的放右邊绪钥。
用Quick Sort的divide-and-conquer法旗芬,或者用Priority Queue (Max Heap) 數(shù)據(jù)結(jié)構(gòu),注意Java和Python都是最小堆升敲,需要轉(zhuǎn)換一下答倡。
【題目答案】