gpt4 book ai didi

javascript - 没有 sort() 的组合算法

转载 作者:搜寻专家 更新时间:2023-11-01 05:28:00 25 4
gpt4 key购买 nike

我需要从 123 开始的结果,如下所示。我想在没有 sort() 的情况下从头开始打印。

1 2 3
1 2 4
1 2 5
.....
3 5 6
4 5 6

但是,结果如下所示。

4 5 6
3 5 6
2 5 6
1 5 6
3 4 6
2 4 6
1 4 6
2 3 6
1 3 6
1 2 6
3 4 5
2 4 5
1 4 5
2 3 5
1 3 5
1 2 5
2 3 4
1 3 4
1 2 4
1 2 3

result = "";
var N = 6;
var M = 3;
var arr = new Array(M);
combi(N, M, arr, M);
alert(result);

function combi(n, r, arr, sz) {
var i = n + 1;
while (i-- > r) {
// choose the first element
arr[r - 1] = i;
if (r > 1) { // if still needs to choose
// recursive into smaller problem
combi(i - 1, r - 1, arr, sz);
} else {
// print out one solution
var j = -1;
while (++j < sz) {
result += arr[j] + " ";
}
result += "\n";
}
}
}

最佳答案

除了所有的反转,你可以从一个开始并迭代直到想要的值。

function combination(n, r) {

function iter(i, temp) {
if (temp.length === r) { // set complete
result.push(temp.join(' ')); // join values
return;
}
if (i + r > n + 1 + temp.length) { // exit early
return;
}
iter(i + 1, temp.concat(i)); // take the value
iter(i + 1, temp); // go without the value
}

var result = []; // result set
iter(1, []); // start with 1 and
return result; // empty array for collecting sets
}

console.log(combination(6, 3));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 没有 sort() 的组合算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48078615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com