Array Permutation(数组的全排列)
题目描述:
给定一个数字n,和一个关于需要生成排列的长度k。要求根据这两个数字,从[1…n]的数组中生成长度为k的排列。
例子:
例如给定数字为n=4,k=2;则根据要求生成的排列为[[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]。
解题思路:
这道题理解上问题不大,主要是在于用什么方法去解决。我们首先想到的是使用回溯的方法来解决。首先是使用一个标签变量来记录我们当前要确定排列中的第几个位置,然后递归的调用函数来确定下面位置的数字。主要的思路体现在代码中,可以看代码中的注释来理解。
代码如下:
|
|
解题思路2:
当然这道题也可以使用递归的方法来解决。主要不同的是直接生成一个当前路径数组,然后不断的确定当前位置的数字即可。
代码如下:
|
|