【LeetCode笔记】46. 全排列(Java、DFS回溯、队列)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】46. 全排列(Java、DFS回溯、队列)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 代碼 & 思路
題目描述
- 老簡單了,一眼就是用visited數組記錄出現過的數字,依次基礎上進行回溯即可
- 和前面的題目很像,用隊列結合回溯使用
代碼 & 思路
class Solution {public List<List<Integer>> permute(int[] nums) {// 和之前的題目有點像List<List<Integer>> ans = new ArrayList<>();// boolean 默認值 falseboolean[] visited = new boolean[nums.length];Deque<Integer> deque = new ArrayDeque<>();back(nums,ans,visited,deque);return ans;}// 思路:visited數組void back(int[] nums, List<List<Integer>> ans, boolean[] visited, Deque<Integer> deque){if(deque.size() == nums.length){ans.add(new ArrayList<>(deque));return;}// 這里是重點for(int i=0;i<nums.length;i++){if(!visited[i]){visited[i] = true;deque.addLast(nums[i]);back(nums, ans, visited, deque);deque.removeLast();visited[i] = false;}}} }總結
以上是生活随笔為你收集整理的【LeetCode笔记】46. 全排列(Java、DFS回溯、队列)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网技术+非技术书单资源分享,都给泥萌
- 下一篇: python导出excel文件数字签名_