Day85 第 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

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution:
    def getKthMagicNumber(self, k):
        import heapq
        nums = [1,3,5,7]
        s,result = set(),1
        my_list = []
        heapq.heapify(my_list)
        heapq.heappush(my_list, 1)
        for _ in range(k+1):
            result = heapq.heappop(my_list)
            for i in nums:
                temp = result * i
                if temp not in s:
                    s.add(temp)
                    heapq.heappush(my_list, temp)
        return result


def test_getKthMagicNumber():
    s = Solution()
    assert s.getKthMagicNumber(5) == 9

你可能感兴趣的:(Day85 第 k 个数)