丑数 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;
}
};

最新文章

  1. React.js常识
  2. java基础快捷键(1)
  3. python基础——第三方模块
  4. Sublime Text3使用记录
  5. laravel框架总结(二) -- blade模板引擎
  6. placeholder修改颜色
  7. App推广干货,排名数据分析优化效果
  8. 【HOJ1356】【Miller_rabin素性测试】Prime Judge
  9. linux命令-查看当前目录下所有文件的大小:“ll -h”
  10. UITextView(文本视图) 学习之初体验
  11. 【技术引擎——汇聚IT思想之间的碰撞】
  12. Spring注解用法
  13. iOS开发——单例模式
  14. C# Unity游戏开发——Excel中的数据是如何到游戏中的 (四)2018.4.3更新
  15. Python 字典(Dictionary) has_key()方法
  16. mysql_study_3
  17. Spring MVC 全注解配置 (十一)
  18. Bugly实现app全量更新
  19. gitlab 10.8.1 迁移
  20. 纯CSS实现一个微信logo,需要几个标签?

热门文章

  1. PredicateBuilder
  2. Scala基本语法总结(一)
  3. telent connection refused
  4. java中子类会继承父类的构造方法吗?
  5. linux3.4.2之块设备驱动完整程序
  6. HMM笔记
  7. Active Job 基础
  8. PTA基础编程题目集7-1厘米换算英尺英寸
  9. Maximum sum
  10. Java设计模式(10)——结构型模式之代理模式(Proxy)