LintCode 丑数

原创 2015年07月09日 14:50:37

中等 丑数

20%
通过

设计一个算法,找出只含素因子357 的第 k 大的数。

符合条件的数如:3,5,7,9,15......

您在真实的面试中是否遇到过这个题? 
Yes
样例

如果k=4, 返回 9

挑战

要求时间复杂度为O(nlogn)或者O(n)


class Solution {
public:
    /*
     * @param k: The number k.
     * @return: The kth prime number as description.
     */
     template <class T> 
     T minnum (T a, T b, T c) {
         T temp  =  a > b ? b:a;
         return temp < c ? temp :c;
     }
    long long kthPrimeNumber(int k) {
        // write your code here
        long long *result = new long long[k];
        result [0] = 3;
        result [1] = 5;
        result [2] = 7;
        int a3 = 0;
        int a5 = 0;
        int a7 =0;
        for (int i = 3; i < k; ++i) {
            result[i] = minnum(result[a3] * 3, result[a5] * 5, result[a7] * 7);
            while (result[a3] * 3 <= result[i]) {
                ++a3;
            }
            while (result[a5] * 5 <= result[i]) {
                ++a5;
            }
            while (result[a7] * 7 <= result[i]) {
                ++a7;
            }
        }
        return result[k-1];
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LintCode python 小白7-超级丑数

题目:写一个程序来找第 n 个超级丑数。 超级丑数的定义是正整数并且所有的质数因子都在所给定的一个大小为 k 的质数集合内。

LintCode笔记(8)——丑数II

Ugly number is a number that only have factors 2, 3 and 5. Design an algorithm to find the nth ugly ...

Google/LintCode:M-超级丑数

题目 题目来源:Link 写一个程序来找第 n 个超级丑数。 超级丑数的定义是正整数并且所有的质数因子都在所给定的一个大小为 k 的质数集合内。 比如给你 4 个质数的集合 [2, 7,...

经典数据算术----丑数

  • 2009-01-04 20:00
  • 175KB
  • 下载

丑数查找的代码

UVA136 丑数

题目的意思是要输出第1500个丑数

判断是否为丑数

  • 2015-08-19 15:53
  • 473B
  • 下载

c实现的丑数

  • 2015-12-24 18:51
  • 1.25MB
  • 下载

HDOJ 1058:Humble Numbers 寻找丑数问题 解题报告

符合要求的丑数只含有2、3、5、7的质因子 求前5842个丑数 解题思想为:下一个最小的丑数一定在它前面的每个元素分别与2、3、5、7的乘积的结果中产生 而实际上只需跟踪4个数列即f[a]*2, f...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)