问题标签 [puzzle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 如果该行或列包含 0,则将矩阵中的每个单元格设置为 0
给定一个包含 0 和 1 的 NxN 矩阵。将包含 a 的每一行设置0
为所有0
s,并将包含 a 的每一列设置0
为所有0
s。
例如
结果是
一位 Microsoft 工程师告诉我,有一个解决方案不涉及额外的内存,只需要两个布尔变量和一个 pass,所以我正在寻找那个答案。
顺便说一句,想象它是一个位矩阵,因此矩阵中只允许 1 和 0。
c++ - i = ++i + ++i; 在 C++ 中
有人可以向我解释为什么这段代码会打印 14 吗?我只是被另一个学生问了,我想不通。
python - 检查二维数组(如八皇后拼图)
我的问题与八皇后谜题非常相似。
例如,我有一个二维数组(N x N),如下所示:
我正在水平、垂直和对角线检查 1 的出现
我正在考虑仅将“1”的(x,y)位置存储在列表中
并以数学方式解决它,用另一个 (x1,y1)<->(x2,y2) 检查“1”的每个位置,
如果x1 == x2
或y1 == y2
we have a collision!
如果不检查:
(???)
其中z是+/-( x1+z in 0..N ) and ( y1+z in 0..N ) .......
我的问题是检查对角线碰撞,有更好的方法吗???
algorithm - 如何存储套装,快速找到相似的图案?
(这不是作业,也不是工作问题。这只是我个人的兴趣/职业,完全是虚构的。但我对好的算法或数据结构感兴趣。)
假设,我会经营一个约会网站。而我的特点是单曲与电影品味相匹配。(为什么不?)
在这种情况下,我需要一种方法来存储每个用户的电影评分。(到目前为止没问题。)我需要一个数据结构来找到最合适的用户。两种口味模式之间的距离将是两个用户做出的所有评分之间的平均距离。
例子
距离(X,Z) = avg( abs(9-9) + abs(1-4) ) = 1.5
距离(Y,Z) = avg( abs(4-6) + abs(6-4) + abs(8-7) ) = 1.666
因此,X 先生比 Y 先生更适合 Z 女士。
我喜欢那个...
- ...不需要对数据库进行很多操作
- ...不需要处理大量数据
- ... 快跑
- ...提供最佳匹配
- 好的,也许我也会考虑好的近似值。
请记住,这也应该适用于数以千计的可能电影、仅对大约 20-50 部电影评分的用户以及数以千计的用户。
(因为这是一个心理难题,而不是真正的问题,所以工作场所并没有真正的帮助。)
你的搜索算法或数据结构是什么?
puzzle - 扩展父子关系
鉴于下面给出的单表设计,如何最好地查询以下内容
- 给定一个民间 id 的大家庭成员的集合
- 给定两个民间 id 的一组共同祖先
- 给定民间 id 的后代集
*奖金1st cousins,两次删除给一个民间 id
餐桌民俗
math - 一种检查 num1 的数字是否是 num2 中的数字而不检查每个数字的方法?
假设我猜到了一个彩票号码:
1689
彩票的运作方式是,只要数字与实际中奖彩票号码中的数字 1:1 匹配,数字的顺序就无关紧要。
因此,数字 1689 将是一个中奖彩票号码:
1896、1698、9816等。
只要您猜中的每个数字都出现在目标号码中,那么您就中了彩票。
有没有数学方法可以做到这一点?
我已经通过 O(N^2) 循环检查每个数字与中奖彩票号码的每个数字(用模数分隔)解决了这个问题。这很好,它有效,但我想知道我是否可以做任何巧妙的数学技巧。
例如,起初......我认为我可能会很棘手,只取两个数字中每个数字的总和和乘积,如果它们匹配,那么你就赢了。
^ 你觉得这样行吗?
然而,当我发现彩票猜测:222 和 124 的数字不同但乘积和总和相同时,我很快就反驳了这一点。
任何人都知道我可以用来快速确定 num1 中的数字是否与 num2 中的数字匹配的任何数学技巧,而不管顺序如何?
java - 这种神秘的色彩方法有什么作用?它返回什么?
也许我喝了太多咖啡,也许我工作太久了,无论如何,我对这种方法的作用感到茫然,或者更确切地说,为什么以及如何做到这一点,任何人都可以对我有所了解? 下一个颜色是什么?
更新
感谢大家的回复。查看程序中方法的上下文很明显,他们的意图确实是返回一个新颜色,该颜色与现有颜色集“最远”。
感谢 Sparr 对这个问题提出后续建议,我一定会根据您的建议重写上述内容。
我对 RGB 色标不是很精通。知道上述方法的意图是检索“免费”吗?颜色与现有的一组颜色相比,在我们如何感知颜色的意义上,1中提供的解决方案实际上是互补的吗?有没有一种更简单的方法来选择一种可以补充集合的颜色,或者 RGB 分量的数值分析实际上是否会产生适当的颜色?
c - 什么操作将浮点数变成一个“组”?
可能有人熟悉将一组有效浮点数强制为基于乘法运算的组的技巧和技术吗?
也就是说,给定任意两个浮点数(“double a,b”),什么样的操作序列,包括乘法,会变成另一个有效的浮点数?(有效的浮点数是任何 1 归一化的数字,不包括 NaN、非正规数和 -0.0)。
把这个粗略的代码:
由于 NaN,仅靠自身相乘是行不通的。理想情况下,这将是一种直线方法(避免“如果高于 X,则除以 Y”公式)。
如果这不适用于所有有效的浮点数,是否有一个子集可供此类操作使用?
(我正在寻找的模型类似于 C 中的整数乘法 - 无论两个整数相乘,你总是得到一个整数)。
java - 为什么我的简单比较器坏了?
我有一堂课,我已经简化为:
我想对这个东西的数组进行排序。所以我创建了一个简单的 copmarator:
然后我使用Arrays.sort
.
这适用于我的测试用例,但有时数组以奇怪但可重复的顺序结束时会出错。怎么会这样?
algorithm - 使用基于整数除法的例程进行计数 - 是否有公式化的方法?
考虑一个通过连续除法和余数运算进行计数的例程。
从 64 位除数开始,例程除以常数除数。
如果余数为 0,则例程返回。
否则,通过将余数乘以 2^32 并加上整数商来构造新的被除数。
在代码中:
对于任意除数,是否有一种最好的非迭代方法来计算必要的股息以获得所需的计数?
对于许多初始股息来说,这似乎很快达到了“断言”条件。一些红利会导致它永远循环吗?
如果例程返回商而不是计数,我可以计算股息以产生我想要返回的数字吗?