LeetCode|劍指 Offer 49.醜數
題目:
我們把只包含質因子 2、3 和 5 的數稱作醜數(Ugly Number)。求按從小到大的順序的第 n 個醜數。
示例:
輸入: n = 10
輸出: 12
解釋: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 個醜數。
說明:
1 是醜數。
n 不超過1690。
分析:
- 與題目264相同傳送門
程式碼:
class Solution:
def nthUglyNumber(self, n: int) -> int:
dp = [1] * n
num2 = num3 = num5 = 0
for i in range(1,n):
dp[i] = min(dp[num2]*2, dp[num3]*3, dp[num5]*5)
if dp[i] == dp[num2]*2:
num2 += 1
if dp[i] == dp[num3]*3:
num3 += 1
if dp[i] == dp[num5]*5:
num5 += 1
return dp[-1]
結果:
相關文章
- 劍指offer—49.醜數—分析及程式碼(Java)Java
- 劍指offer第49題 醜數
- Leetcode劍指offer(八)LeetCode
- 【leetcode】劍指 Offer 16. 數值的整數次方LeetCode
- Leetcode 劍指 Offer 40. 最小的k個數LeetCode
- LeetCode 劍指 Offer 05. 替換空格LeetCode
- 《劍指offer》JAVA題解,LeetCode評測JavaLeetCode
- LeetCode-劍指Offer刷題記錄LeetCode
- 劍指OFFER
- Leetcode 劍指 Offer 03. 陣列中重複的數字LeetCode陣列
- 《Leetcode of December》劍指 Offer 67. 把字串轉換成整數LeetCode字串
- 劍指Offer 表示數值的字串字串
- LeetCode 263[醜數]LeetCode
- 劍指offer——斐波那契數列
- leetcode *劍指 Offer 47. 禮物的最大價值LeetCode
- LeetCode 劍指 Offer 65. 不用加減乘除做加法LeetCode
- 劍指offer導航
- 劍指 offer21
- 劍指offer16
- 劍指 offer20
- 劍指Offer-31-最小的K個數
- 劍指Offer系列之「表示數值的字串」字串
- Leetcode 劍指 Offer 39. 陣列中出現次數超過一半的數字LeetCode陣列
- 劍指offer-JavaScript版JavaScript
- 【劍指Offer】矩形覆蓋
- 劍指Offer題解合集
- 劍指offer——跳臺階
- 六、劍指 Offer(25~29)
- 刷題記錄:劍指offer+遇到的筆試題+LeetCode筆試LeetCode
- 劍指offer:旋轉陣列的最小數字陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 【LeetCode刷題(簡單程度)】劍指 Offer 57. 和為s的兩個數字LeetCode
- LeetCode 49. Group AnagramsLeetCode
- leetcode 劍指 Offer 48. 最長不含重複字元的子字串LeetCode字元字串
- leetcode 102 劍指Offer 32 二叉樹的層次遍歷LeetCode二叉樹
- 劍指offer第41~50題
- 劍指 offer(1) -- 陣列篇陣列
- 【劍指offer】【2】字串的空格字串