有些數的素因子只有 3,5,7,請設計乙個演算法找出第 k 個數。注意,不是必須有這些素因子,而是必須不包含其他的素因子。例如,前幾個數按順序應該是 1,3,5,7,9,15,21。
示例 1:
輸入: k = 5
輸出: 9
3 ptr
classsolution:
def getkthmagicnumber(self, k: int) ->int:
if k<2:return 1a=[0]*k
a[0]=1i3=i5=i7=0
for i in range(1,k):
tmp=min(a[i3]*3,a[i5]*5,a[i7]*7)
if a[i3]*3==tmp:i3+=1
if a[i5]*5==tmp:i5+=1
if a[i7]*7==tmp:i7+=1a[i]=tmp
return a[k-1]
面試題40 最小k個數
題目 輸入n個整數,找出其中最小的k個數 思路 1 如果輸入的陣列可以改變,則基於第k個數來調整,是第k個數左邊的數都小於第k個數,右邊的數都大於第k個數 時間複雜度o n 思路1 void printkminnumberbymethod1 int arr,int length,int k int ...
面試題之最小K個數
最小 最大k個數 是面試容易提及的其中乙個問題,此處用快排思路解決。思路 因為當選取的樞紐元等於k時,樞紐元左邊的序列元素必定小於k,右邊的序列元素必定大於k。儘管序列內部是無序的,但此時結果已符合題意。為避免產生多餘的排序工作,我們只需要在遞迴的時候分歧選擇最接近k的方向即可,一旦等於k就停止遞迴...
面試題 17 14 最小K個數
leetcode 面試題 17.14.最小k個數 easy 題 但是這道題是想考什麼 明顯很多種解法 排序暴力 topk 問題 大頂堆 使用 bfprt 在o n 內求解前k小的數 最壞時間複雜度 o n o n o n 劍指 offer 40.最小的k個數 中的解法一 基於快排的思想 一次快排 二...