lintcode - kth prime number
来源:互联网 发布:网站特效源码 编辑:程序博客网 时间:2024/04/24 14:59
Design an algorithm to find the kth number such that the only prime factors are 3, 5, and 7.
The eligible numbers are like 3, 5, 7, 9, 15 ...
Example
If k=4, return 9.
Challenge
O(n log n) or O(n) time
算法详见:http://www.geeksforgeeks.org/ugly-numbers/
http://www.cppblog.com/zenliang/articles/131094.html
思路总结:
有三个指针p3, p5, p7, 分别对应结果数组中的数字应该乘以3,5,7, 选择三个结果中最小的一个赋予result current指针上的数,并且将p3/p5/p7 指针加一。注意这里不可以使用if/else 循环,因为有可能多于一个指针的结果是相等的:例如p3->5, p5->3, 他们的结果相等,这是两个指针都要+1
public long kthPrimeNumber(int k) { long[] result = new long[k+1]; int p3 = 0; int p5 = 0; int p7 = 0; result[0] = 1; for (int i = 1; i <= k; i++) { long num = Math.min(Math.min(result[p3]*3, result[p5]*5), result[p7]*7); if (num/result[p3] == 3) { p3++; } if (num/result[p5] == 5) { p5++; } if (num/result[p7] == 7) { p7++; } result[i] = num; } return result[k]; }
0 1
- lintcode - kth prime number
- lintcode: Kth Smallest Number in Sorted MatrixShow result
- LintCode Kth Smallest Number in A Unsorted Array
- Lintcode - kth largest element
- **[Lintcode]Kth Largest Element
- lintcode kth-smallest-number-in-sorted-matrix 排序矩阵中的从小到大第k个数
- Prime Number
- Prime number
- Prime Number
- Prime Number
- prime number
- LintCode 5: Kth Largest Element
- PKU 2104 Kth-Number
- The kth great number
- The kth great number
- hdu 2665 Kth number
- Hdu 2665 Kth number
- HDU 2665 Kth number
- 在$ORACLE_DB_SOFTWARE_HOME/bin下的小工具offset
- 机器学习与智能优化 之 自顶而下聚类:K均值
- 【BZOJ 1057】 [ZJOI2007]棋盘制作
- Leetcode -- Combinations
- 【转载】AIX LVM LVCB 和 Oracle 4k Offset的思考
- lintcode - kth prime number
- Leetcode -- Subsets
- linux 下查找文件或者内容常有命令
- Leetcode -- Word Search
- cocos2dx开发者指南:UI控件使用
- linux下的find文件查找命令与grep文件内容查找命令
- 【BZOJ 1058】 [ZJOI2007]报表统计
- 表单标签动画畅想
- Win 7+CentOS 7双系统安装血泪史T_T