我整天都在看PHP数组排列/组合问题..但仍然无法弄明白:/
如果我有一个像这样的数组:
20 //key being 0
20 //key being 1
22 //key being 2
24 //key being 3
Run Code Online (Sandbox Code Playgroud)
我需要组合如:
20, 20, 22 //keys being 0 1 2
20, 20, 24 //keys being 0 1 3
20, 22, 24 //keys being 0 2 3
20, 22, 24 //keys being 1 2 3
Run Code Online (Sandbox Code Playgroud)
我目前的代码给了我:
20, 22, 24
Run Code Online (Sandbox Code Playgroud)
因为它不想重复20 ...但这就是我需要的!
这是我的代码.它直接来自Php递归以获得字符串的所有可能性
function getCombinations($base,$n){
$baselen = count($base);
if($baselen == 0){
return;
}
if($n == 1){
$return = array();
foreach($base as $b){
$return[] = …Run Code Online (Sandbox Code Playgroud) 我在javascript中给出了一系列条目,例如:
var entries = ["cat", "dog", "chicken", "pig"];
Run Code Online (Sandbox Code Playgroud)
我现在想迭代它们的所有独特的成对组合.在这个例子中,我想看到:
("cat", "dog"),
("cat", "chicken"),
...
Run Code Online (Sandbox Code Playgroud)
在其他语言中,如scala,这非常简单.你这样做
entries.combinations(2)
Run Code Online (Sandbox Code Playgroud)
javascript库中有类似的方法或功能吗?或者我只需要用嵌套循环以丑陋的方式自己编写它?
能帮我解决这个问题吗?
你有一个n个整数的无序数组X. 找到包含n个元素的数组M,其中Mi是X中除Xi之外的所有整数的乘积.你可能不会使用除法.你可以使用额外的内存.(提示:有比O(n ^ 2)快的解决方案.)
基本的 - O(n ^ 2)和一个使用除法很容易.但我无法得到比O(n ^ 2)更快的另一种解决方案.
algorithm ×2
combinations ×2
arrays ×1
javascript ×1
permutation ×1
php ×1
puzzle ×1
recursion ×1