當前位置:
首頁 >
78. Leetcode 264. 丑数 II (堆-技巧二-多路归并)
發布時間:2025/4/5
27
豆豆
生活随笔
收集整理的這篇文章主要介紹了
78. Leetcode 264. 丑数 II (堆-技巧二-多路归并)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你一個整數 n ,請你找出并返回第 n 個 丑數 。丑數 就是只包含質因數?2、3 和/或?5?的正整數。示例 1:輸入:n = 10
輸出:12
解釋:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 個丑數組成的序列。
示例 2:輸入:n = 1
輸出:1
解釋:1 通常被視為丑數。import heapqclass Solution:def nthUglyNumber(self, n: int) -> int:# 1. 起始最先將最小丑數1放入隊列# 2. 每次從隊列取出最小值x, 然后將x所對應的丑數2x,3x,5x進入隊列# 3. 對 2 循環多次,第n次出隊的值就是答案# 為了防止同一丑數多次進隊,需要使用數據結構set來記錄入隊列的丑數nums = [2,3,5]explored = {1}pq = [1]for i in range(1, n + 1):x = heapq.heappop(pq)if i == n:return xfor num in nums:t = num * xif t not in explored:explored.add(t)heapq.heappush(pq,t)return -1
總結
以上是生活随笔為你收集整理的78. Leetcode 264. 丑数 II (堆-技巧二-多路归并)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 77. Leetcode 1439. 有
- 下一篇: 80. Leetcode 1642. 可