Tag: 语言无关的

亚马逊推荐function如何工作?

亚马逊推荐技术的屏幕背后有什么技术? 我相信亚马逊的推荐目前是市场上最好的,但是他们如何为我们提供这样的相关build议呢? 最近,我们已经参与了类似的推荐类项目,但是从技术的angular度来看,肯定会想知道亚马逊推荐技术的来龙去脉。 任何投入将不胜感激。 更新: 这个专利解释了如何完成个性化的build议,但这不是很技术性的,所以如果能够提供一些见解,这将是非常好的。 从戴夫的评论中, 亲和力分析构成了这种推荐引擎的基础。 这里还有一些关于主题的好消息 揭秘市场篮子分析 市场篮子分析 亲和性分析 推荐阅读: 数据挖掘:概念和技术

如何有效地从一堆袜子配对?

昨天我是从干净的洗衣店袜子配对,并找出我做的方式不是很有效。 我正在做一个天真的search – 挑一只袜子,“迭代”一堆,以find它的一对。 这要求平均迭代n / 2 * n / 4 = n 2/8袜子。 作为一名计算机科学家,我在想我该怎么办? sorting(根据大小/颜色/ …)当然想到实现O(NlogN)的解决scheme。 哈希或其他非原地解决scheme不是一种select,因为我无法复制我的袜子(尽pipe如果我可以很好)。 所以,这个问题基本上是: 给定一堆n对袜子,包含2n元素(假设每个袜子只有一对配对),那么将它们有效配对到对数额外空间的最佳方法是什么? (如果需要的话,我相信我可以记住这个数量的信息。) 我将非常感谢一个解决以下问题的答案: 大量袜子的一般理论解决scheme。 袜子的实际数量并不大,我不相信我的配偶和我有30多双。 (把袜子和她的袜子区分开来是相当容易的,这个也可以使用吗?) 这是否相当于元素清晰度问题 ?

在string中查找第一个未重复的字符

find只出现在string中的第一个字符的最快方法是什么?

从前序和后序列表重构树

考虑一下你有两个节点列表,你知道的是一个是某棵树的前序遍历的表示,另一个是同一棵树的后序遍历的表示。 我相信有可能从这两个列表中完全重构树,我想我有一个algorithm来做,但没有certificate它。 因为这将是一个硕士项目的一部分,我需要绝对肯定,这是可能的和正确的(mathcertificate)。 然而,这不是项目的重点,所以我想知道是否有一个源(即纸或书),我可以引用的证据。 (也许在TAOCP?有人可能知道该段?) 简而言之,我需要一个经过validation的algorithm,使用可引用的资源从前后遍历中重构树。 注意:有问题的树可能不是二进制的,或者是平衡的,或者任何会使它变得太简单的东西。 注2:只使用前序或后序列表会更好,但我不认为这是可能的。 注3:节点可以有任意数量的子节点。 注4:我只关心兄弟姐妹的顺序。 只有一个孩子的时候,左边或右边不重要。

devise一个堆栈,使getMinimum()应该是O(1)

这是面试问题之一。 您需要devise一个包含整数值的堆栈,以便getMinimum()函数返回堆栈中的最小元素。 例如:考虑下面的例子 情况1 5 – > TOP 1 4 6 2 当调用getMinimum()时,它应该返回1,这是最小的元素 在堆栈中。 情况#2 stack.pop() stack.pop() 注:5和1都从堆栈中移出。 所以在这之后,堆栈 好像, 4 – > TOP 6 2 当getMinimum()被调用时,应该返回2,这是最小的 叠加。 制约性: getMinimum应返回O(1)中的最小值 在devise时还必须考虑空间约束,如果使用额外的空间,则空间应该是恒定的。

为什么switch语句而不是if-else?

我一直在想这个一段时间了。 我到目前为止不是一个硬核程序员,主要是小型Python脚本,我写了一些分子动力学模拟。 对于真正的问题: switch语句有什么意义? 为什么你不能使用if-else语句 ? 感谢您的回答,如果之前已经询问,请将我指向链接。 编辑 S.Lott指出,这可能是If / Else vs. Switch问题的重复。 如果你想closures然后这样做。 我会留下来进一步讨论。

基于零的月份编号

一些stream行的编程语言使用的月份编号是1 – JavaScript和Java一样,想到Java,如果内存服务,C是另一个。 我有一些疑问: 如果你会忽略外行人使用的月份编号,那么为什么不为了一致性而忽略外行人使用的date编号,以及从0开始的每个月的date? 为什么这很常见? 这首先是谁的想法?

inheritance与聚合

关于如何在面向对象的系统中最好地扩展,增强和重用代码,有两种思路: inheritance:通过创build一个子类来扩展一个类的function。 覆盖子类中的超类成员以提供新function。 当超类想要一个特定的接口但是不知道它的实现时,使抽象/虚拟方法强制子类“填空”。 聚合:通过采用其他类并将它们组合成一个新类来创build新的function。 将一个通用接口添加到这个新类中,以便与其他代码进行互操作。 每个的好处,成本和后果是什么? 还有其他的select吗? 我看到这个辩论定期出现,但我不认为它已被问及Stack Overflow(尽pipe有一些相关的讨论)。 还有一个惊人的缺乏良好的Google结果。

为什么一个variables对多个值的不等式检查总是返回true?

我在我的程序中有一个variablesv ,它可以从这组值中取任何值 "a", "b", "c", …, "z" 而我的目标是只有当v不是"x" , "y"或"z"时才执行一些语句。 我努力了, 对于类C语言(等于运算符比较实际的string值,例如c# , javascript , php ) if (v != "x" || v != "y" || v != "z") { // the statements I want to be executed // if v is neither "x", nor "y", nor "z" } 对于类似Pascal的语言(例如plsql ) IF (v != 'x' […]

方法和函数之间的区别

有人可以提供在OOP上下文中的方法与函数的简单解释吗?