给你一个整数 n ,请你找出并返回第 n 个 丑数 。
丑数 就是只包含质因数 2、3 和/或 5 的正整数。
输入:n = 10
输出:12
解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。
示例 2:
输入:n = 1
输出:1
解释:1 通常被视为丑数。
import java.util.HashSet;
import java.util.Set;
class Solution {
public int nthUglyNumber(int n) {
int ans[]=new int[n];
ans[0]=1;
int index2=0,index3=0,index5=0;
for(int i=1;i<n;i++)
{
int t2=ans[index2]*2,t3=ans[index3]*3,t5=ans[index5]*5;
int mi=Math.min(t2, Math.min(t3, t5));
if(t2==mi)
index2++;
if(t3==mi)
index3++;
if(t5==mi)
index5++;
ans[i]=mi;
}
return ans[n-1];
}
}
本文介绍如何使用Java编程求解第n个丑数问题,通过构建丑数序列并利用最小值策略来逐步填充。通过实例演示了如何利用质因数分解和动态规划思想解决该问题。
763

被折叠的 条评论
为什么被折叠?



