Middle-题目81:264. Ugly Number II

原创 2016年05月31日 17:00:56

题目原文:
Write a program to find the n-th ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10 ugly numbers.

Note that 1 is typically treated as an ugly number.
题目大意:
求第n个丑陋数。
丑陋数指的是质因数只有2,3,5的正整数。注意1是丑数。
题目分析:
其实本题是前面的Middle-题目41的退化情况,相当于求列表[2,3,5]下的超级丑数。因此算法本质与那道题完全一样,只是这次只维护2,3,5三个素数的索引值即可。
源码:(language:java)

public class Solution {
    public int nthUglyNumber(int n) {
        int l1=1,l2=1,l3=1;
        int a,b,c;
        int[] uglyNumber = new int[n+1];
        uglyNumber[1] = 1;
        for(int i = 2;i<=n;i++) {
            a=uglyNumber[l1]*2;
            b=uglyNumber[l2]*3;
            c=uglyNumber[l3]*5;
            int min = min(a,b,c);
            if(min==a)
                l1++;
            if(min==b)
                l2++;
            if(min==c)
                l3++;
            uglyNumber[i]=min;
        }
        return uglyNumber[n];
    }
    private  int min(int a, int b, int c) {
        if(a<=b && a<=c)
            return a;
        else if(b<=a && b<=c)
            return b;
        else 
            return c;
    }
}

成绩:
7ms,beats 96.36%,众数9ms,12.39%

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

[leetcode] 264. Ugly Number II 解题报告

题目链接:https://leetcode.com/problems/ugly-number-ii/ Write a program to find the n-th ugly number. ...
  • qq508618087
  • qq508618087
  • 2015年12月13日 15:54
  • 522

[Leetcode 264] Ugly Number II

Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime facto...
  • sbitswc
  • sbitswc
  • 2015年09月02日 00:23
  • 2229

[leetcode-264]Ugly Number II(java)

问题描述: Write a program to find the n-th ugly number.Ugly numbers are positive numbers whose prime fa...
  • zdavb
  • zdavb
  • 2015年08月24日 11:12
  • 1144

leetcode笔记:Ugly Number II

从1开始的丑数为:1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, … 该题的大意是,输入一个正整数n,返回第n个丑数。...
  • liyuefeilong
  • liyuefeilong
  • 2016年01月10日 18:42
  • 1558

Ugly Number II(求第N个丑数)

这个应该是微软的一道面试题,首先需要明白丑数的概念。1是一个特殊的丑数,其次只含有2,3,5质因数的数被定义为丑数。 关于解题的思路可以参考: http://www.geeksforgeeks.o...
  • guang09080908
  • guang09080908
  • 2015年08月19日 14:49
  • 5409

**[Lintcode]Ugly Number II 丑数 II

Ugly number is a number that only have factors 2, 3 and 5. Design an algorithm to find the nth ug...
  • jc69186918
  • jc69186918
  • 2016年12月04日 17:27
  • 305

264. Ugly Number II

Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime facto...
  • zhouyanz
  • zhouyanz
  • 2016年03月22日 10:16
  • 92

264. Ugly Number II**

Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors...
  • alwaystry
  • alwaystry
  • 2016年08月11日 21:18
  • 76

263. Ugly Number && 264. Ugly Number II

Write a program to check whether a given number is an ugly number. Ugly numbers are positive number...
  • mynotwo
  • mynotwo
  • 2017年05月10日 22:06
  • 63

丑数Ugly Number查找算法

我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数 下面是一...
  • houzengjiang
  • houzengjiang
  • 2012年09月03日 23:50
  • 8120
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目81:264. Ugly Number II
举报原因:
原因补充:

(最多只允许输入30个字)