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
- Leetcode劍指offer(八)LeetCode
- 【leetcode】劍指 Offer 16. 數值的整數次方LeetCode
- Leetcode 劍指 Offer 40. 最小的k個數LeetCode
- 【劍指offer】字串轉整數字串
- 劍指Offer 表示數值的字串字串
- 《劍指offer》JAVA題解,LeetCode評測JavaLeetCode
- LeetCode-劍指Offer刷題記錄LeetCode
- LeetCode 劍指 Offer 05. 替換空格LeetCode
- 《劍指offer》:[54]表示數值的字串字串
- Leetcode 劍指 Offer 03. 陣列中重複的數字LeetCode陣列
- 《Leetcode of December》劍指 Offer 67. 把字串轉換成整數LeetCode字串
- 劍指Offer系列之「表示數值的字串」字串
- 《劍指offer》:[49]把字串轉化成整數字串
- 【劍指offer】把陣列排成最小的數陣列
- 劍指offer面試題11 數值的整數次方面試題
- 劍指offer-JavaScript版JavaScript
- 【劍指offer】左旋轉字串字串
- 【劍指offer】字串的排列字串
- 劍指Offer題解合集
- 劍指offer:旋轉陣列的最小數字陣列
- 劍指offer 旋轉陣列的最小數字陣列
- LeetCode 劍指 Offer 65. 不用加減乘除做加法LeetCode
- leetcode *劍指 Offer 47. 禮物的最大價值LeetCode
- 劍指 offer(1) -- 陣列篇陣列
- 【劍指offer】【2】字串的空格字串
- 【劍指offer】字串的組合字串
- 劍指offer刷題記錄
- 【劍指offer】二進位制中1的個數
- 劍指Offer--陣列中重複的數字陣列
- 劍指offer(Java版)--將字串轉換為整數Java字串
- 劍指Offer-34-把陣列排成最小的數陣列
- 劍指offer——把陣列排成最小的數C++陣列C++
- 劍指offer-9-斐波那契數列-javaJava
- 劍指offer——把字串轉換成整數C++字串C++
- 菲波那切數列(劍指offer)---c語言C語言
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 《劍指offer》:[51]陣列中的重複數字陣列