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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。