[JavaScript 刷题] 找到所有的排列顺序 (Find All Permutation)

Posted GoldenaArcher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JavaScript 刷题] 找到所有的排列顺序 (Find All Permutation)相关的知识,希望对你有一定的参考价值。

[javascript 刷题] 找到所有的排列顺序 (Find All Permutation)

解这道题的先决条件:理解什么是递归。

这是一个比较经典的递归问题了,一般问的就是寻找出一个 字符串/数字 所有的排列方式,如:abc 的组合方式有:

  • abc
  • acb
  • bac
  • bca
  • cba
  • cab

以排列组合来说,组合的可能性为 n ! = n × ( n − 1 ) × ( n − 2 ) × . . . × 1 n! = n \\times (n - 1) \\times (n - 2) \\times ... \\times 1 n!=n×(n1)×(n2)×...×1

每一次迭代将一个值从数组内弹出,第一个循环体为:

pop
pop
pop
abc
a
b
c
bc
ac
ab

第二个循环体内,继续迭代,分别弹出数组中的下一个值:

pop
pop
pop
pop
pop
pop
pop
pop
pop
abc
a
b
c
bc
ac
ab
b
c
a
c
a
b

第三次迭代再弹出剩下的值,结果如下:

以上是关于[JavaScript 刷题] 找到所有的排列顺序 (Find All Permutation)的主要内容,如果未能解决你的问题,请参考以下文章

力扣刷题:全排列(java实现)

力扣刷题:全排列(java实现)

leetcode刷题七

java刷题--31下一个排列

用 Javascript 中的堆算法解决排列问题

优化一个简单的缺失词算法[重复]