/**
* new String[]{"a","b","c"}
*
*/
private static ArrayList<ArrayList<String>> permute(String[] num) {
ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
result.add( new ArrayList<String>());
for ( int i = 0; i < num. length; i++) { //循环出每一个数字
ArrayList<ArrayList<String>> current = new ArrayList<ArrayList<String>>();
for (ArrayList<String> l : result) {
for ( int j = 0; j < l.size()+1; j++) {
l.add(j, num[i]); //i;控制插入的内容,j:控制插入的位置
ArrayList<String> temp = new ArrayList<String>(l); //保存插入后list中的内容
current.add(temp); //把copy后的list放入,一个零时的List;
l.remove(j); //去掉插入的数据,保持原样,方便下次在不同的位置插入数据
}
}
result = new ArrayList<ArrayList<String>>(current);
}
return result;
}
推荐大家一本电子版的《数据结构与算法java版》,希望学习算法的友友直接拿去。
资料地址:http://www.quzhuanpan.com/download/checkResult.action?id=78005&type=3
转载于:https://my.oschina.net/u/2346498/blog/669891