65得票24回答
在时间复杂度为O(n)的情况下查找数组中的重复元素

我在一次面试中被问及这个问题,一直在思考正确答案。 你有一个包含0到n-1数字的数组,其中一个数字被删除并替换为数组中已有的数字,从而产生了该数字的重复。如何在O(n)时间内检测到此重复项? 例如,一个由4,1,2,3组成的数组将变为4,1,2,2。 使用嵌套循环查找每个元素的重...

7得票2回答
二进制数的快速除法算法

我目前正在使用Logisim(即仅使用逻辑门)构建一个16位ALU,但卡在了除法过程上。我目前只是使用简单的标准“除法算法循环”(如下所示): 读取输入值; 比较输入值。等待比较过程完成; 如果A 从A中减去B; 等待减法过程完成; 将计数加1; 等待计数过程完成; 将减法过程中的值写...

22得票7回答
排序算法中,如果成对比较可以返回更多信息(而不仅仅是-1、0、+1),则称为什么?

大多数排序算法依赖于一种成对比较的方式,确定A B。 我正在寻找利用可以区分整体与局部差异的成对比较函数的算法(并且额外加分的话,Python代码)。因此,比较函数返回{-2, -1, 0, 1, 2}或{-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5}甚至是介于...

51得票13回答
Swift:如何正确地拆分一个 [String],使其成为一个给定子数组大小的 [[String]]?

给定一个大的[String]和一个子数组大小,最好的方法是什么?将这个数组拆分成更小的数组?(最后一个数组将比给定的子数组大小小)。 具体例子: 使用最大拆分大小为2拆分["1","2","3","4",&quo...

8得票1回答
使用Java Stream API转换分支界定循环

我有一个简单的分支界限算法,可以处理旅行商问题的一种变体,我想尝试将其转化为使用Java 8 Stream API。然而,在不依赖副作用的情况下进行转换时,我遇到了一些困难。 初始代码 int bound = Integer.MAX_VALUE; List<Location> ...

10得票4回答
在C#中获取无符号长整型数的位数

我正在尝试确定C# ulong数字中的位数,我正在尝试使用一些数学逻辑而不是使用ToString().Length来实现。我还没有对这两种方法进行基准测试,但已经看到其他帖子使用System.Math.Floor(System.Math.Log10(number)) + 1来确定数字的位数。似...

25得票5回答
使用伪随机数生成器生成乱序范围,而不是通过洗牌实现

有没有已知的算法可以在线性时间和常数空间内(迭代产生输出时),用任意种子值生成一个洗牌范围[0..n)? 假设n可能很大,例如数百万,因此不需要潜在地生成每个可能的排列,特别是因为这是不可行的(种子值空间需要巨大)。这也是常数空间要求的原因。(因此,我特别不寻找数组洗牌算法,因为它要求将范围...

11得票4回答
以O(n)时间复杂度运行的数组“最大差值”算法?

给定一个包含 N 个整数的数组,将该数组排序,并找到排序后相邻两个数之间差值最大的一对。 例如:对于输入的数组[1,7,3,2],输出4(排序后的数组为[1,2,3,7],最大差值为 7-3=4)。 算法A的时间复杂度为O(NlogN)。 我需要寻找一种与算法A功能相同的算法,但时间复杂...

29得票9回答
推荐系统是如何工作的?

我一直很好奇这些系统是如何工作的。例如,Netflix或亚马逊如何根据过去的购买记录和/或评级确定要推荐什么内容?是否有任何算法可供参考? 只是为了避免误解,我问这个问题并没有实际的理由。我只是出于纯粹的好奇心而问。 (另外,如果有关于这个主题的现有问题,请指引我。" 推荐系统" 是一个难...

11得票1回答
使用动态规划创建最大配置

我一直在尝试解决下面放置的问题。我有几个想法已经尝试过了。最初,我考虑选择N元组的所有组合并对它们进行排序,但是实现很丑陋且速度太慢了。我认为这个问题可以采用动态规划方法来解决。我遇到的问题是如何创建配置文件。之后,我认为我知道如何解决这个问题。 问题陈述: 给定高度H(1 <= H <=...