温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Lintcode4 Ugly Number II solution 题解

发布时间:2020-07-16 18:03:06 来源:网络 阅读:465 作者:coderer 栏目:软件技术

【题目描述】

Ugly number is a number that only have factors 2, 3 and 5.

Design an algorithm to find the nth ugly number. The first 10 ugly numbers are 1, 2, 3, 4, 5, 6, 8, 9, 10, 12...

Notice:Note that 1 is typically treated as an ugly number.

设计一个算法,找出只含素因子2,3,5 的第 n 大的数。符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12...

注意:我们可以认为1也是一个丑数。

【题目链接】

http://www.lintcode.com/en/problem/ugly-number-ii/

【题目解析】

这就是多链表Merge Sort的一个扩展题。

对于任意一个ugly number - K, 2*K, 3*K, 和5*K都是ugly number,所以说新的ugly number都是从已有的ugly number上,通过与{2,3,5}相乘而产生的。

如果

Ugly Number:      1,        2,          3,          4,          5,          6,            8,        10,    ..........

那么                      1*2      2*2        3*2        4*2        5*2        6*2        8*2        10*2  ...........*2

                              1*3      2*3        3*3        4*3        5*3        6*3        8*3        10*3  .......... *3

                              1*5      2*5        3*5        4*5        5*5        6*5        8*5        10*5  .......... *5

都是ugly number。只要不断把新产生的ugly number通过merge sort添加到原有的ugly number数组中就可以了,直到找到第N个。

【答案链接】

http://www.jiuzhang.com/solutions/ugly-number-ii/


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI