【力扣 095】264. 醜數 II
阿新 • • 發佈:2022-05-21
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 通常被視為醜數。
提示:
1 <= n <= 1690
來源:力扣(LeetCode)
連結:https://leetcode.cn/problems/ugly-number-ii
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
程式碼實現:
class Solution { public: int nthUglyNumber(int n) { vector<int> dp(n + 1); dp[1] = 1; int p2 = 1, p3 = 1, p5 = 1; for (int i = 2; i <= n; i++) { int num2 = dp[p2] * 2, num3 = dp[p3] * 3, num5 = dp[p5] * 5; dp[i] = min(min(num2, num3), num5); if (dp[i] == num2) { p2++; } if (dp[i] == num3) { p3++; } if (dp[i] == num5) { p5++; } } return dp[n]; } };