news 2026/8/16 12:42:49

力扣46 全排列 java实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣46 全排列 java实现

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中的所有整数互不相同

该题是回溯问题 ,用递归较方便,每次只需要判断数组中的数是否被用过即可,即创建一个布尔数组来判别每个数组的位置是否被用过,接着按序递归遍历数组即可,只要保证保存的临时集合最大的个数要小于等于给定的数组个数,若等于数组个数则需要将其保存在结果集合中。具体代码如下:

public static void main(String[] args) { // 测试用 int[] nums = {1,2,3}; List<List<Integer>> res = permute(nums); for (List<Integer> list : res) { System.out.println(list); } } public static List<List<Integer>> permute(int[] nums) { List<List<Integer>> res = new ArrayList<>(); helper(res, new ArrayList<>(), nums, 0, new boolean[nums.length]); return res; } public static void helper(List<List<Integer>> res, List<Integer> temp, int[] nums, int count, boolean[] s){ if (count == nums.length){ res.add(new ArrayList<>(temp)); return; } if (count > nums.length){ return; } for (int i = 0; i < nums.length; i++) { if (s[i] == true){ continue; } temp.add(nums[i]); s[i] = true; helper(res, temp, nums, count + 1, s); temp.remove(temp.size() - 1);; s[i] = false; } }

以上为记录分享用,代码较差请见谅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 18:54:24

如何快速使用京东自动评价工具:新手用户的完整指南

京东自动评价工具是一款专为简化购物评价流程而设计的智能助手。这个基于Python开发的开源项目能够帮助用户自动生成贴合商品特点的个性化评价内容&#xff0c;让评价工作变得轻松高效。无论您是想要节省时间的普通消费者&#xff0c;还是需要管理多个账号的用户&#xff0c;这…

作者头像 李华
网站建设 2026/8/14 20:39:46

Revelation光影包深度解析:5大核心机制重塑Minecraft视觉体验

Revelation光影包深度解析&#xff1a;5大核心机制重塑Minecraft视觉体验 【免费下载链接】Revelation A realistic shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation 当像素方块遇上真实光影&#xff0c;Minecraft的世…

作者头像 李华
网站建设 2026/8/14 20:10:35

React中setState后获取更新后值的完整解决方案

在React开发中&#xff0c;很多新手都会遇到一个常见“坑”&#xff1a;调用setState更新状态后&#xff0c;立即读取状态却拿到旧值。这并非React的bug&#xff0c;而是setState的异步特性导致的。本文将从问题本质出发&#xff0c;分类详解类组件和函数组件中获取setState更新…

作者头像 李华
网站建设 2026/8/16 1:17:15

互联网医院定制|互联网医院|禾高互联网医院搭建

互联网医院系统是指依托实体医疗机构&#xff0c;运用现代信息技术&#xff0c;通过线上平台为患者提供覆盖部分或全部医疗健康服务的综合性数字化系统。其核心目标在于打破时空壁垒&#xff0c;优化医疗资源配置&#xff0c;提升服务效率与可及性。 该系统并非单一功能模块的堆…

作者头像 李华
网站建设 2026/8/15 1:29:45

Altium Designer教程:AD20层次化原理图设计深度剖析

Altium Designer 20层次化原理图设计实战指南&#xff1a;从模块拆解到高效复用 你有没有遇到过这样的场景&#xff1f;一张密密麻麻的原理图&#xff0c;布满交错的走线和成百上千的元件&#xff0c;想改一个电源路径&#xff0c;结果牵一发而动全身&#xff1b;团队协作时多人…

作者头像 李华
网站建设 2026/8/16 10:33:58

Steam成就管理器完整教程:如何轻松掌控你的游戏成就

Steam成就管理器完整教程&#xff1a;如何轻松掌控你的游戏成就 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 还在为那些难以达成的游戏成就而烦恼吗&am…

作者头像 李华