4890得票62回答
在JavaScript中如何检查数组是否包含某个值?

什么是在JavaScript中查找数组是否包含特定值的最简洁和高效的方法? 以下是我所了解的唯一方法:function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (a[i] === obj...

4183得票38回答
如何高效地从一堆袜子中匹配成对?

昨天我在整理干净的衣服中的袜子,发现我所做的方法不太高效。 我正在进行一个朴素搜索——选取一只袜子并“迭代”堆以找到它的配对。这需要平均遍历n/2 * n/4 = n2/8只袜子。 作为一名计算机科学家,我在思考我该怎么做?排序(按照大小/颜色/...)当然是想到了实现O(NlogN)解决方...

2709得票32回答
O(log n)的确切含义是什么?

我正在学习关于Big O符号的时间复杂度和平摊分析时间。我理解了O(n)线性时间的概念,这意味着输入规模对算法的增长成正比例影响...对于二次方时间O(n2)等同样适用...甚至像排列生成器这样的算法,其时间复杂度为O(n!),它们的增长是阶乘级别的。 例如,下面的函数是O(n),因为算法随...

2064得票14回答
什么是游戏2048的最佳算法?

最近我偶然发现了一个游戏2048。你通过在任意四个方向上移动相似的方块来合并它们,以形成"更大"的方块。每次移动后,一个新的方块将随机出现在空位置,其值为2或4之一。当所有方块都被填满且没有可以合并的方块时,或者您创建了一个值为2048的方块时,游戏终止。 首先,我需要遵循明确定义的策略来达...

2045得票29回答
什么是尾递归?

在开始学习Lisp时,我遇到了术语尾递归。它确切指的是什么?

1902得票23回答
图像处理:针对“可口可乐罐”识别的算法改进

过去几年中我参与的最有趣的项目之一是一个关于图像处理的项目。目标是开发一个系统,能够识别可口可乐的'罐'(请注意我强调了单词'罐',您很快就会知道为什么)。您可以在下面的示例中看到,通过在绿色矩形中识别出旋转和缩放的罐子。 该项目存在以下限制: 背景可能非常嘈杂。 罐可能具有任何比例...

1672得票22回答
什么是最佳的重写GetHashCode算法?

在.NET中,GetHashCode 方法 在许多.NET基类库中被广泛使用。正确实现它对于快速查找集合中的项或确定相等性尤为重要。 是否有标准算法或最佳实践来为我的自定义类实现GetHashCode,以免降低性能?

1448得票58回答
在列表中去除重复项

如何检查列表是否有任何重复项,并返回一个没有重复项的新列表?

1275得票49回答
简单的面试问题变得更难了:给定1到100的数字,找出缺失的数字(s),确定恰好有k个数字丢失。

我曾经有过一次有趣的工作面试经历。问题开始非常简单: Q1:我们有一个装着数字 1、2、3、……、100 的袋子。每个数字恰好出现一次,因此总共有 100 个数字。现在从袋子里随机取出一个数字,请找到缺失的数字。 当然,我之前听过这个面试问题,所以我很快回答道: A1:嗯,数字 1...