Lintcode518 Super Ugly Number solution 题解

【题目描述】

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.

 Notice

1 is a super ugly number for any given primes.

The given numbers in primes are in ascending order.

0 < k ≤ 100, 0 < n ≤ 10^6, 0 < primes[i] < 1000

写一个程序来找第 n 个超级丑数。

超级丑数的定义是正整数并且所有的质数因子都在所给定的一个大小为 k 的质数集合内。

比如给你 4 个质数的集合 [2, 7, 13, 19], 那么 [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] 是前 12 个超级丑数。

 注意事项

1 永远都是超级丑数不管给的质数集合是什么。

给你的质数集合已经按照升序排列。

0 < k ≤ 100, 0 < n ≤ 10^6, 0 < primes[i] < 1000

【题目链接】

www.lintcode.com/en/problem/super-ugly-number/

【题目解析】

这道题让我们求超级丑陋数,是之前Ugly Number的延伸,质数集合可以任意给定,这就增加了难度。

由于我们不知道质数的个数,我们可以用一个idx数组来保存当前的位置,然后我们从每个子链中取出一个数,找出其中最小值,然后更新idx数组对应位置,注意有可能最小值不止一个,要更新所有最小值的位置。

【参考答案】

www.jiuzhang.com/solutions/super-ugly-number/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,129评论 0 10
  • Ugly Number II Write a program to find the n-th ugly numb...
    exialym阅读 1,469评论 0 0
  • 首先,我们从最简单的开始: Write a program to check whether a given nu...
    frankensteinl阅读 7,657评论 0 3
  • 嫦娥 为什么没有带走月亮 惹得人们 从古至今 年年望秋月 迷惘,凄凉 冷笛声声 撕碎的是异客的心 痛到麻木 在绝望...
    伊丽苏白阅读 1,358评论 0 2
  • 感恩回馈新老顾客朋友们,架子牛55元1支水漾沁透泡沫面奶。现在只需9块9需要的微我吧。微信名蔡明琴芬芬,不好用可以...
    蔡明琴芬芬阅读 818评论 0 1