leetcode ——46.全排列
阿新 • • 發佈:2020-07-30
回溯
public List<List<Integer>> permute(int[] nums) { List<List<Integer>> result = new ArrayList<>(); boolean[] visited = new boolean[nums.length]; backtrack(result,nums,new ArrayList<Integer>(),visited); return result; } privatevoid backtrack(List<List<Integer>> result, int[] nums, ArrayList<Integer> temp, boolean[] visited) { if(temp.size() == nums.length){ result.add(new ArrayList<>(temp)); return; } for(int i = 0;i<nums.length;i++){ if(visited[i]) continue; visited[i] = true; temp.add(nums[i]); backtrack(result, nums, temp, visited); visited[i] = false; temp.remove(temp.size()-1); } }
一段時間不刷題就會變得生疏,,這是第二次做了,還是沒能自己做出來。。。
難過。
回溯有什麼難的啊,,,
動點腦子,,
——2020.7.30