剑指Offer 264. 丑数 II(动态规划,Java)
Posted Kapo1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer 264. 丑数 II(动态规划,Java)相关的知识,希望对你有一定的参考价值。
本题与剑指 Offer 49. 丑数一致
题目
给你一个整数 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.com/problems/ugly-number-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
需要注意的地方
- 注意丑数其实就是更小的丑数乘2或乘3或乘5得来的
题解
class Solution {
public int nthUglyNumber(int n) {
int[] dp = new int[1695];
int a = 1;
int b = 1;
int c = 1;
dp[1] = 1;
for(int j = 2; j <= n; j ++) {
int t1 = dp[a] * 2;
int t2 = dp[b] * 3;
int t3 = dp[c] * 5;
dp[j] = Math.min(Math.min(t1, t2), t3);
if(dp[j] == t1) {
a ++;
}
if(dp[j] == t2) {
b ++;
}
if(dp[j] == t3) {
c ++;
}
}
return dp[n];
}
}
以上是关于剑指Offer 264. 丑数 II(动态规划,Java)的主要内容,如果未能解决你的问题,请参考以下文章
264. Ugly Number II(丑数 剑指offer 34)
Leetcode之动态规划(DP)专题-264. 丑数 II(Ugly Number II)