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

示例 1:

输入: k = 5

输出: 9

Python 解答:

class Solution:
    def getKthMagicNumber(self, k: int) -> int:
        i, j, m = 0, 0, 0
        a = [1 for i in range(k)]
        n = 1
        while n < k:
            b3 = a[i]*3
            b5 = a[j]*5
            b7 = a[m]*7
            min_value = min(b3, b5, b7)
            if b3 == min_value:
                i += 1
            if b5 == min_value:
                j += 1
            if b7 == min_value:
                m += 1
            a[n] = min_value
            n += 1
        return a[k-1]
最后修改日期: 2021年5月17日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。