using System;
using System.Collections.Generic;
class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param num int整型一维数组
* @return int整型二维数组
*/
public List<List<int>> permute (List<int> num) {
// write code here
if (num == null || num.Count == 0)
return null;
List<List<int>> lslsN = new List<List<int>>();
List<int> lsN = null;
DG(num, ref lslsN, ref lsN);
return lslsN;
}
public static void DG(List<int> num, ref List<List<int>> lslsN,
ref List<int> lsN) {
if (lsN == null)
lsN = new List<int>();
if (num.Count == 0) {
lslsN.Add(lsN);
return;
}
for (int nIndex = 0; nIndex < num.Count; nIndex++) {
List<int> numCpy = new List<int>();
numCpy.AddRange(num);
List<int> lsCpy = new List<int>();
lsCpy.AddRange(lsN);
lsCpy.Add(numCpy[nIndex]);
numCpy.RemoveAt(nIndex);
DG(numCpy, ref lslsN, ref lsCpy);
}
}
}