回溯算法:排列问题
2021/5/22 14:25:29
本文主要是介绍回溯算法:排列问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
46. 全排列
给定一个不含重复数字的数组nums
,返回其所有可能的全排列 。你可以按任意顺序返回答案。
输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 输入:nums = [0,1] 输出:[[0,1],[1,0]] 输入:nums = [1] 输出:[[1]]
思路
代码
class Solution { List<Integer> temp = new ArrayList<Integer>(); List<List<Integer>> ans = new ArrayList<List<Integer>>(); public List<List<Integer>> permute(int[] nums) { boolean[] used = new boolean[nums.length]; backtracking(nums,used); return ans; } private void backtracking(int[] nums,boolean[] used) { if(temp.size() == nums.length) { ans.add(new ArrayList<>(temp)); return; } // 遍历 for (int i = 0; i < nums.length; i++) { if(used[i] == false) { temp.add(nums[i]); used[i] = true; } else continue; backtracking(nums,used); temp.remove(temp.size()-1); used[i] = false; } } }
这篇关于回溯算法:排列问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程