剑指 Offer 49. 丑数java

思路:我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。

解题思路,没说的,暴力穷举。

class Solution {
    public int nthUglyNumber(int n) {
        int num=0;
        int curr=1;
        int temp=1;
        while(true){
            temp=curr;
            while(temp%2==0){
                temp=temp/2;
            }
            while(temp%3==0){
                temp=temp/3;
            }
            while(temp%5==0){
                temp=temp/5;
            }
            if(temp==1){
                num++;
                if(num==n){
                   break;
                }
            }
            curr++;
        }
        return curr;
    }
}

奈何时间超出限制。

方法二:动态规划

class Solution {
    public int nthUglyNumber(int n) {
        int a=0,b=0,c=0;
        int dp[]=new int[n];
        dp[0]=1;

        for(int i=1;i

 

你可能感兴趣的:(java)