面试题 17.09. 第 k 个数

有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。

示例 1:

输入: k = 5

输出: 9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/get-kth-magic-number-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

3 ptr

class Solution:
    def getKthMagicNumber(self, k: int) -> int:
        if k<2:return 1
        a=[0]*k
        a[0]=1
        i3=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+=1
            a[i]=tmp
        return a[k-1]

 

posted @ 2020-11-05 17:59  XXXSANS  阅读(119)  评论(0编辑  收藏  举报