172得票21回答
棘手的谷歌面试问题

我有个朋友正在面试。其中一个面试问题让我思考,想要一些反馈。 有两个非负整数: i 和 j。给定以下方程式,找到一个(最优)解来迭代 i 和 j,以便输出是已排序的。2^i * 5^j 那么前几轮看起来会像这样:2^0 * 5^0 = 1 2^1 * 5^0 = 2 2^2 * 5^0 = ...

45得票13回答
第n个丑数

只有2、3、5这三个质因数的数字被称为丑数。 例如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ... 1 可以看作是 2^0。 我正在寻找第 n 个丑数。请注意,随着 n 的增大,这些数字的分布非常稀疏。 我编写了一个简单的程序来计算给定数字是否为丑数。对于 n...

24得票9回答
找出表达式(2^x)*(3^y)*(5^z)中第K小的数

在表达式 2x * 3y * 5z x,y和z可以取非负整数(>=0)。 因此,该函数会生成一系列数字1,2,3,4,5,6,8,9,10,12,15,16.... 我有一个暴力解决方案。 我基本上会在循环中迭代,从1开始,在每次迭代中,我会查找当前数字的因子是否只来自2、3...

16得票4回答
如何根据质因数生成数字,但是指数未知?

可能重复: 第n个丑数 找出表达式(2^x)*(3^y)*(5^z)的第k小的数 我想知道如何以快速优雅的方式解决这个问题: 我们定义“丑数”为任何可以写成形式:2^x * 3^y * 5^z 的数字 n,其中 x、y 和 z 均为自然数。请找出第 1500 ...

14得票4回答
使用一组质数生成升序整数

我有一组质数,必须仅使用这些质因数以递增顺序生成整数。 例如,如果集合为p = {2, 5},那么我的整数应该是1、2、4、5、8、10、16、20、25等。 是否有任何有效算法来解决这个问题?

11得票8回答
找到最小的正则数,使其不小于N。

正则数是可以整除60的幂次方的数字。例如,60的平方=3600=48×75,因此48和75都是60的幂次方的因子。因此,它们也是正则数。 这是取下一个2的幂次方问题的扩展。 我有一个整数值N,其中可能包含大的质因数,我想将其舍入为仅由小的质因数(2、3和5)组成的数字 例子: ...

9得票3回答
无限生成汉明序列的最新技术进展

(这很令人兴奋!) 我知道,这个主题已经广为人知了。在Haskell以及其他语言中,生成无限递增的Hamming数列的高效方法,不包含重复和遗漏,目前的最新技术是以下方法(据我所知 - 顺便说一下,它等同于原始Edsger Dijkstra的解决方案): hamm :: [Integer] ...

7得票1回答
O(N)速度和O(1)内存的汉明数

免责声明:有很多关于这方面的问题,但我没有找到任何要求常量内存的。 汉明数是指数字2^i*3^j*5^k,其中i、j、k是自然数。 是否有可能在O(N)时间和O(1)(常量)内存下生成第N个汉明数?所谓生成,我的意思是准确地生成器,即您只能输出结果而不能读取以前生成的数字(在这种情况下,内...

7得票3回答
F#中seq<int>与Lazy<LazyList<int>>的性能差异

生成无限个哈明数(即所有满足条件 n = 2^i * 3^j * 5^k 的正整数 n)有一个众所周知的解决方案。我已经用 F# 实现了两种不同的方法。第一种方法使用 seq,这种解决方案优雅而简洁,但性能很差。第二种方法使用自定义类型,其中尾部包裹在 Lazy> 中,这种解决方案笨重,但性能...