news 2026/6/10 19:32:55

力扣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/6/10 5:11:40

3步快速掌握HashCalculator:文件哈希值批量管理终极指南

3步快速掌握HashCalculator&#xff1a;文件哈希值批量管理终极指南 【免费下载链接】HashCalculator 一个文件哈希值批量计算器&#xff0c;支持将结果导出为文本文件功能和批量检验哈希值功能。 项目地址: https://gitcode.com/gh_mirrors/ha/HashCalculator 在日常工…

作者头像 李华
网站建设 2026/6/10 15:57:25

绝区零自动辅助工具终极指南:从零开始完整教程

绝区零自动辅助工具终极指南&#xff1a;从零开始完整教程 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 绝区零一条龙是一…

作者头像 李华
网站建设 2026/6/10 16:03:48

WorkshopDL终极使用指南:跨平台Steam模组下载完整教程

WorkshopDL终极使用指南&#xff1a;跨平台Steam模组下载完整教程 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为不同游戏平台的模组兼容性而困扰吗&#xff1f;Worksho…

作者头像 李华
网站建设 2026/6/10 0:03:02

WorkshopDL完全指南:5步轻松下载Steam创意工坊模组

还在为跨平台游戏无法获取Steam创意工坊的精彩模组而困扰吗&#xff1f;WorkshopDL作为一款革命性的Steam创意工坊下载工具&#xff0c;让模组获取变得前所未有的简单。无论你在GOG、Epic Games Store还是其他平台购买游戏&#xff0c;现在都能轻松突破平台限制&#xff0c;畅享…

作者头像 李华
网站建设 2026/6/10 14:31:40

Revelation光影包:为Minecraft注入电影级视觉效果

Revelation光影包&#xff1a;为Minecraft注入电影级视觉效果 【免费下载链接】Revelation A realistic shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation 还在为Minecraft的像素风格画面感到乏味吗&#xff1f;Revelat…

作者头像 李华
网站建设 2026/6/9 22:48:31

10分钟精通HashCalculator:文件哈希批量计算实战指南

在日常文件管理工作中&#xff0c;你是否经常需要同时处理多个文件的哈希值&#xff1f;传统工具逐个计算的方式效率低下&#xff0c;而HashCalculator的出现彻底改变了这一局面。这款专业的文件哈希值批量计算器&#xff0c;就像为你的文件管理工具箱配备了一把多功能工具&…

作者头像 李华