相关疑难解决方法(0)

JavaScript中的排列?

我正在尝试编写一个执行以下操作的函数:

  • 将整数数组作为参数(例如[1,2,3,4])
  • 创建一个包含[1,2,3,4]所有可能排列的数组,每个排列的长度为4

下面的函数(我在网上找到)通过将一个字符串作为参数,然后返回该字符串的所有排列来完成此操作

我无法弄清楚如何修改它以使其与整数数组一起使用(我认为这与某些方法在字符串上的工作方式不同于它们在整数上的工作方式有关,但我不确定. ..)

var permArr = [], usedChars = [];
function permute(input) {
  var i, ch, chars = input.split("");
  for (i = 0; i < chars.length; i++) {
    ch = chars.splice(i, 1);
    usedChars.push(ch);
    if (chars.length == 0)
      permArr[permArr.length] = usedChars.join("");
    permute(chars.join(""));
    chars.splice(i, 0, ch);
    usedChars.pop();
  }
  return permArr
};
Run Code Online (Sandbox Code Playgroud)

注意:我希望使函数返回整数数组,而不是字符串数组.

我真的需要使用JavaScript的解决方案.我已经在python中找到了如何做到这一点

javascript permutation

127
推荐指数
14
解决办法
11万
查看次数

嵌套for循环 - 如何忽略某些组合?

我正在做某种蛮力攻击来解决问题.理论上它是一个有效的解决方案,它确实是,但它需要相当长的时间.

我有7个嵌套for循环,但我只需要'for variables'的组合,其中没有重复.因此,例如允许1,2,3,4,5,6,7,但应忽略1,1,3,4,5,6,7.我目前正在使用一个函数来检查数组中的重复项:

http://www.groggyjava.tv/freebies/duplicates.html

但是我想我会离开,如果我能马上忽视这些组合,而不是反复使用该功能更好的一个组合.现在我正在评估14 ^ 7 = 105.413.504组合,但只有14 nPr 7 = 17.297.280组合是必要的.

我的代码当前是(其中hgd是重复的测试函数,如果没有重复,则返回true):

for(var a=0;a<14;a++) {
    for(var b=0;b<14;b++) {if(hgd([a,b])) {
        for(var c=0;c<14;c++) {if(hgd([a,b,c])) {
            for(var d=0;d<14;d++) {if(hgd([a,b,c,d])) {
                for(var e=0;e<14;e++) {if(hgd([a,b,c,d,e])) {
                    for(var f=0;f<14;f++) {if(hgd([a,b,c,d,e,f])) {
                        for(var g=0;g<14;g++) {if(hgd([a,b,c,d,e,f,g])) {
                            check([a,b,c,d,e,f,g]);
                        }}
                    }}
                }}
            }}
        }}
    }}
}
Run Code Online (Sandbox Code Playgroud)

我怎么能让这个更快,是否有另一个解决方案而不是循环?

谢谢.

javascript

4
推荐指数
1
解决办法
366
查看次数

如何在javascript中创建单词的所有可能字谜列表?

如何在javascript中创建一个单词的所有可能字谜列表?如果已经问过这个问题,请指导我找到答案?

谢谢

javascript anagram

4
推荐指数
1
解决办法
9853
查看次数

标签 统计

javascript ×3

anagram ×1

permutation ×1