博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode:Super Ugly Number - 超级丑数
阅读量:7071 次
发布时间:2019-06-28

本文共 1753 字,大约阅读时间需要 5 分钟。

hot3.png

1、题目名称

Super Ugly Number(超级丑数)

2、题目地址

3、题目内容

英文:

Write a program to find the nth super ugly number.

Super ugly numbers are positive numbers whose all prime factors are in the given prime list    primes of size k. For example, [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] is the sequence of the first 12 super ugly numbers given primes    = [2, 7, 13, 19] of size 4.

中文:写程序找出第n个超级丑数

说明:超级丑数具有如下特征:1是超级丑数,超级丑数可以表示为有限个指定质数的乘积

注意:

1)丑数的定义是:1是丑数,丑数可以表示为有限个2、3、5的乘积,超级丑数是对丑数概念的一个扩展

2)关于“判断指定数字是否为丑数”,请参考

3)关于“找到第n个丑数”,请参考

5、解题方法

找出第n个超级丑数,思路与找出第n个丑数是一样的。区别仅在与找出第n个丑数时,用三个数字记录中间变量,而在找第n个超级丑数时,用一个数组记录。

Java代码如下:

/** * 功能说明:LeetCode 313 - Super Ugly Number  * 开发人员:Tsybius2014  * 开发时间:2015年12月19日 */public class Solution {    /**     * 求第N个超级丑数     * @param n     * @param primes      * @return 第N个超级丑数     */    public int nthSuperUglyNumber(int n, int[] primes) {                int[] superUglyNumbers = new int[n];        superUglyNumbers[0] = 1;        int[] idxPrimes = new int[primes.length];        for (int i = 0; i < idxPrimes.length; i++) {            idxPrimes[i] = 0;        }                int counter = 1;        while (counter < n) {                        int min = Integer.MAX_VALUE;            for (int i = 0; i < primes.length; i++) {                int temp = superUglyNumbers[idxPrimes[i]] * primes[i];                min = min < temp ? min : temp;            }            for (int i = 0; i < primes.length; i++) {                if (min == superUglyNumbers[idxPrimes[i]] * primes[i]) {                    idxPrimes[i]++;                }            }                        superUglyNumbers[counter] = min;            counter++;        }                return superUglyNumbers[n - 1];    }}

END

转载于:https://my.oschina.net/Tsybius2014/blog/547766

你可能感兴趣的文章
头文件和宏
查看>>
Android开发学习笔记:浅谈WebView
查看>>
设计模式之------命令链模式
查看>>
DNS解析服务器
查看>>
unable kill namenode hadoop3.0.3 解决到放弃解决的过程
查看>>
解决软件提示unable to find a version of runtime to
查看>>
第二课unit3 系统延迟及定时机制
查看>>
十二月机房考核
查看>>
shell 类型
查看>>
网页中meta标记
查看>>
python爬虫笔记-day5
查看>>
Jenkins+newman 控制台输出样式
查看>>
公司业务转型,IT基础架构也要转型,京东云Docker容器集群微服务实践
查看>>
解释try_files $uri $uri/ /index.php$is_args$args;
查看>>
营销圈也可以提供类似“不涂口红的你”的创意文案?
查看>>
【源码分享】短信验证码功能对接CmsEasy
查看>>
学习linux入门之top命令的用法介绍
查看>>
MySQL的基础分部
查看>>
aix knowlgdgecenter
查看>>
好程序员分享JavaScript事件委托代理和函数封装详解
查看>>