求前n個最大(小)元素我們首先先到的方法一定是堆排序,python中提供了內建的heapq模組可以實現堆排序,對外介面直接呼叫即可。參考了一下蘿蔔吃土豆的**。
heapq可以對字典進行排序,基於此,我們求最大n個數及其索引的**如下:
import heapq
testlist = [1,2,3,4,5]
tmp = zip(range(len(testlist)), testlist)
large5 = heapq.nlargest(5, tmp, key=lambda x:x[1])
print(large5) #index and value of the largest 5 elements
需要注意的是,堆排屬於不穩定排序 python獲取序列中最大值
test 1,2,3 4,5,6 7,8,9 這個就可以看做是二維陣列了,直接建立 print test print test 1 這裡會輸出 4,5,6 print test 1 這裡會輸出 4,5,6 print test 1 這裡會輸出 4,5,6 print test 1 1 這裡輸出的是5...
找出N個整數中最大的K個數
所謂 第 前 k大數問題 指的是在長度為n n k 的亂序陣列中s找出從大到小順序的第 前 k個數的問題。解法1 我們可以對這個亂序陣列按照從大到小先行排序,然後取出前k大,總的時間複雜度為o n logn k 解法2 利用選擇排序或互動排序,k次選擇後即可得到第k大的數。總的時間複雜度為o n k...
尋找n個數中最大乘積
尋找最大乘積 1 全部是正數,即是最大的三個數乘積 2 全部是負數,即也是最打的三個數的乘積 3 勳在正數和負數,如果最大的三個數全部是正數,即是三個正數乘積,最大數,次小數和最小數的乘積。即是尋找最大的三個數,和最小的兩個數。n int input array list map int,input...