LintCode 4 丑数II
来源:互联网 发布:网络大电影计划 编辑:程序博客网 时间:2024/06/05 00:10
题目:nthUglyNumber
要求:
设计一个算法,找出只含素因子2,3,5 的第 n 大的数。符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12...注意事项 1.我们可以认为1也是一个丑数
样例
如果n = 9, 返回 10
算法要求:要求时间复杂度为O(nlogn)或者O(n)
解题思路:仔细观察规律,从第二个数开始,每一个数为第p2个数的二倍、第p3个数的三倍、第p5个数的五倍中最小的一个(初识p2/p3/p5都代表第一个数)。
算法如下:
#define min(a,b) ((a)<(b)?(a):(b)) #define min3(a,b,c) (min(min(a,b),min(a,c))) int nthUglyNumber(int n) { int i = 1; int p2 = 0; int p3 = 0; int p5 = 0; int uglyNum[6048] = {0}; uglyNum[0] = 1; while ( i < n ) { uglyNum[i] = min3(uglyNum[p2] * 2, uglyNum[p3] * 3, uglyNum[p5] * 5); if (uglyNum[i] == uglyNum[p2] * 2) { p2++; } if (uglyNum[i] == uglyNum[p3] * 3) { p3++; } if (uglyNum[i] == uglyNum[p5] * 5) { p5++; } i++; } return uglyNum[n-1]; }
0 0
- LintCode 4 丑数II
- lintcode-丑数 II
- (lintcode)第4题 丑数II
- LintCode Python 丑数II
- [LintCode]4.丑数 II
- LintCode----4.丑数II
- LintCode 4.丑数 II
- **[Lintcode]Ugly Number II 丑数 II
- LintCode笔记(8)——丑数II
- lintcode 4.丑数 II(优先队列)
- LintCode python 小白6-丑数 II
- 丑数、丑数 II
- LintCode-剑指Offer-(4)丑数
- LintCode 丑数
- LintCode-丑数
- LintCode:超级丑数
- LintCode 517 丑数
- LintCode.517.丑数
- Linux使用sendmail邮件监控[运维监控]
- 最大子阵(dp)
- C语言:浅析指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针
- Spring入门——Bean的自动装配(Autowring)
- Android studio 加速
- LintCode 4 丑数II
- Linux操作笔记
- 独自饮酒无人知晓却对月笑
- php 字符串拼接
- 【精华分享】【Unity&NGUI】UI文章总览
- hive中order by,sort by, distribute by, cluster by作用以及用法
- CSS学习笔记12:伪类和超链接的美化
- logstash Output plugins >> elasticsearch
- type = hidden 隐藏域有什么作用?