46. 全排列
创始人
2024-03-15 01:23:18
0

一次一粒沙,一次一件事。 ——《人性的优点》

46. 全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

提示:

1 <= nums.length <= 6
-10 <= nums[i] <= 10
nums 中的所有整数 互不相同

思路:(回溯:暴力遍历)

回溯万能模板:

void backtracking(/* 所需参数(访问标记, 中间存储, 最终存储, 原始数据)*/) {// TODO 自动生成的方法存根if(/*终止条件*/) {//一种情况,加入最终存储return; //返回}for(/*对现有条件进行罗列*/) {if(/*判断是否合理,或者是否已访问*/) {continue;//跳过}//将该元素加入中间存储(修改条件)//标位已访问backtracking(/*参数*/); //递归调用自身//将该元素从中间存储删除(条件复位,即 :回溯)//标记为未访问}}

本题注意点:ArrayList是一个引用类型,因此每次都要new一个再加入到list中

代码: (Java)

import java.util.ArrayList;
import java.util.List;public class arrangement {public static void main(String[] args) {// TODO 自动生成的方法存根int [] nums = {1, 2, 3};System.out.println(permute(nums));}public static List> permute(int[] nums) {List> alarr = new ArrayList<>();List midarr = new ArrayList<>();boolean [] hasVisited = new boolean [nums.length];if(nums == null || nums.length == 0) {return alarr;}backtracking(hasVisited, midarr, alarr, nums);return alarr;}private static void backtracking(boolean[] hasVisited, List midarr, List> alarr, int[] nums) {// TODO 自动生成的方法存根if(midarr.size() == hasVisited.length) {alarr.add(new ArrayList<>(midarr));//重新构造一个 Listreturn;}int n = hasVisited.length;for(int i = 0; i < n; i++) {if(hasVisited[i]) {continue;}midarr.add(nums[i]);hasVisited[i] = true;backtracking(hasVisited, midarr, alarr, nums);midarr.remove(midarr.size() - 1);hasVisited[i] = false;}}
}

运行结果:

在这里插入图片描述

其他同等解法的题目:

257. 二叉树的所有路径
79. 单词搜索
93. 复原 IP 地址
17. 电话号码的字母组合

注:仅供学习参考!

题目来源:力扣

相关内容

热门资讯

轻纺城:3.71亿元房屋征收补... 12月25日,轻纺城(600790)发布公告,2022年6月,公司子公司国际物流中心与房屋征收部门签...
诉讼未决,海辰储能赴港IPO前... 储能类公司赴港IPO难不难?对果下科技而言,不难——更新招股书后便很快登陆港股市场。对海辰储能而言,...
江丰电子:分红政策详见未来三年... 证券之星消息,江丰电子(300666)12月25日在投资者关系平台上答复投资者关心的问题。 投资者提...
深度关注丨促进"四项... 安徽省亳州市健全“纪巡”联动机制,该市市委巡察机构将发现的生态环境保护方面问题线索及时移交市纪委监委...
上海出台23条政策措施 支持长... 近日,上海市科委会同松江区研究制订了《关于支持长三角G60科创走廊策源地建设的若干措施》。《若干措施...
藏格矿业:发布对外投资管理制度 藏格矿业公告称,公司制定对外投资管理制度,规范对外投资行为,明确对外投资需遵循合法合规、符合发展战略...
一审败诉!海峡创新因担保卷入房... 12月25日晚间,海峡创新(300300)发布公告,公司收到浙江省杭州市拱墅区人民法院送达的民事判决...
形势政策系列报告会第三场报告会... 新华社北京12月25日电 由中央宣传部、中央和国家机关工委、教育部、中央军委政治工作部、北京市委联合...
以考提质 以答践责——长春市宽... 12月23日,长春市宽城区举行2025年度领导干部法律知识考试,28名新提拔处级领导干部和31名新提...