當(dāng)前位置:
首頁(yè) >
【LeetCode笔记】46. 全排列(Java、DFS回溯、队列)
發(fā)布時(shí)間:2024/7/23
38
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】46. 全排列(Java、DFS回溯、队列)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 題目描述
- 代碼 & 思路
題目描述
- 老簡(jiǎn)單了,一眼就是用visited數(shù)組記錄出現(xiàn)過(guò)的數(shù)字,依次基礎(chǔ)上進(jìn)行回溯即可
- 和前面的題目很像,用隊(duì)列結(jié)合回溯使用
代碼 & 思路
class Solution {public List<List<Integer>> permute(int[] nums) {// 和之前的題目有點(diǎn)像List<List<Integer>> ans = new ArrayList<>();// boolean 默認(rèn)值 falseboolean[] visited = new boolean[nums.length];Deque<Integer> deque = new ArrayDeque<>();back(nums,ans,visited,deque);return ans;}// 思路:visited數(shù)組void back(int[] nums, List<List<Integer>> ans, boolean[] visited, Deque<Integer> deque){if(deque.size() == nums.length){ans.add(new ArrayList<>(deque));return;}// 這里是重點(diǎn)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;}}} }總結(jié)
以上是生活随笔為你收集整理的【LeetCode笔记】46. 全排列(Java、DFS回溯、队列)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 互联网技术+非技术书单资源分享,都给泥萌
- 下一篇: 【LeetCode笔记】剑指 Offer