LintCode-4.丑数 II
2024-09-25 22:55:58
丑数 II
设计一个算法,找出只含素因子2,3,5 的第 n 大的数。
符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12...注意事项
我们可以认为1也是一个丑数
样例
如果n = 9, 返回 10
挑战
要求时间复杂度为O(nlogn)或者O(n)
标签
LintCode 版权所有 优先队列
code
class Solution {
public:
/*
* @param n an integer
* @return the nth prime number as description.
*/
int nthUglyNumber(int n) {
// write your code here
if(n <= 0)
return 0;
int *pivUglyNum = new int[n];
int *piMul2=pivUglyNum, *piMul3=pivUglyNum, *piMul5=pivUglyNum;
int nextNumIndex = 1;
pivUglyNum[0] = 1;
while(nextNumIndex < n) {
int min = minIn3Num(*piMul2 * 2, *piMul3 * 3, *piMul5 * 5);
pivUglyNum[nextNumIndex] = min;
while(*piMul2 * 2 <= pivUglyNum[nextNumIndex])
piMul2++;
while(*piMul3 * 3 <= pivUglyNum[nextNumIndex])
piMul3++;
while(*piMul5 * 5 <= pivUglyNum[nextNumIndex])
piMul5++;
nextNumIndex++;
}
int uglyNum = pivUglyNum[nextNumIndex-1];
delete[] pivUglyNum;
return uglyNum;
}
int minIn3Num(int num1, int num2, int num3) {
int min = (num1 < num2) ? num1 : num2;
min = (min < num3) ? min : num3;
return min;
}
};
最新文章
- React.js常识
- java基础快捷键(1)
- python基础——第三方模块
- Sublime Text3使用记录
- laravel框架总结(二) -- blade模板引擎
- placeholder修改颜色
- App推广干货,排名数据分析优化效果
- 【HOJ1356】【Miller_rabin素性测试】Prime Judge
- linux命令-查看当前目录下所有文件的大小:“ll -h”
- UITextView(文本视图) 学习之初体验
- 【技术引擎——汇聚IT思想之间的碰撞】
- Spring注解用法
- iOS开发——单例模式
- C# Unity游戏开发——Excel中的数据是如何到游戏中的 (四)2018.4.3更新
- Python 字典(Dictionary) has_key()方法
- mysql_study_3
- Spring MVC 全注解配置 (十一)
- Bugly实现app全量更新
- gitlab 10.8.1 迁移
- 纯CSS实现一个微信logo,需要几个标签?