2021.4.11 丑数Ⅱ
题目描述
给你一个整数 n ,请你找出并返回第 n 个 丑数 。
丑数 就是只包含质因数 2、3 和/或 5 的正整数。
思路分析
代码
public int nthUglyNumber(int n) {
int[] dp = new int[n];
dp[0] = 1;
int num2,num3,num5,p2 = 0,p3 = 0,p5 = 0;
for(int i = 1;i < n;i++){
num2 = dp[p2] * 2;
num3 = dp[p3] * 3;
num5 = dp[p5] * 5;
int res = Math.min(Math.min(num2,num3),num5);
if(num2 == res) p2++;//不用else if 是为了去重
if(num3 == res) p3++;
if(num5 == res) p5++;
dp[i] = res;
}
return dp[n - 1];
}