Leetcode--全排列(Java)
給定一個 沒有重復 數字的序列,返回其所有可能的全排列。
示例:
輸入: [1,2,3]
輸出:
[
? [1,2,3],
? [1,3,2],
? [2,1,3],
? [2,3,1],
? [3,1,2],
? [3,2,1]
]
代碼:
class?Solution?{
????public?List<List<Integer>>?permute(int[]?nums)?{
????????List<List<Integer>>?result?=?new?ArrayList<>();
????????List<Integer>?list?=?new?ArrayList<>();
????????boolean?visited[]?=?new?boolean[nums.length];
????????helper(result,list,visited,nums);
????????return?result;
????}
????public?void?helper(List<List<Integer>>?result,List<Integer>?list,boolean?visited[],int?nums[])
????{
????????if(list.size()==nums.length){
????????????result.add(new?ArrayList(list));
????????}
????????for(int?i=0;i<nums.length;i++){
????????????if(!visited[i]){
????????????????list.add(nums[i]);
????????????????visited[i]?=?true;
????????????????helper(result,list,visited,nums);
????????????????visited[i]?=?false;
????????????????list.remove(list.size()-1);
????????????}
????????}
????}
}
總結
以上是生活随笔為你收集整理的Leetcode--全排列(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsp--cookie
- 下一篇: Juventas, the Roman