news 2026/5/16 16:33:14

力扣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/5/1 0:54:57

鸣潮效率革命:从时间消耗到智能掌控的思维跃迁

鸣潮效率革命&#xff1a;从时间消耗到智能掌控的思维跃迁 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 当你的游戏时间…

作者头像 李华
网站建设 2026/5/10 10:13:51

终极指南:如何使用HbaseGUI轻松管理HBase集群

终极指南&#xff1a;如何使用HbaseGUI轻松管理HBase集群 【免费下载链接】HbaseGUI HbaseGUI 项目地址: https://gitcode.com/gh_mirrors/hb/HbaseGUI HBase作为分布式列式数据库&#xff0c;其强大的存储能力常常被复杂的命令行操作所掩盖。数据管理员需要频繁使用HBa…

作者头像 李华
网站建设 2026/5/15 14:00:58

智慧健康养老管理实训室建设:从理论到实践助力学生职业能力提升

在老龄化社会背景下&#xff0c;智慧健康养老产业蓬勃发展&#xff0c;对高素质专业人才的需求日益迫切。然而&#xff0c;传统教学模式往往偏重理论传授&#xff0c;学生缺乏实际操作经验&#xff0c;导致其职业能力与岗位需求存在差距。因此&#xff0c;智慧健康养老管理实训…

作者头像 李华
网站建设 2026/5/13 21:32:37

鸣潮智能助手终极指南:从新手到专家的完整使用教程

鸣潮智能助手终极指南&#xff1a;从新手到专家的完整使用教程 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 鸣潮智能助…

作者头像 李华
网站建设 2026/5/9 15:39:07

Obsidian PDF Plus:重新定义PDF阅读与知识管理的完美融合

Obsidian PDF Plus&#xff1a;重新定义PDF阅读与知识管理的完美融合 【免费下载链接】obsidian-pdf-plus An Obsidian.md plugin for annotating PDF files with highlights just by linking to text selection. It also adds many quality-of-life improvements to Obsidians…

作者头像 李华
网站建设 2026/5/9 11:19:48

智能手机号查询QQ号:3步搞定逆向查询的终极方案

智能手机号查询QQ号&#xff1a;3步搞定逆向查询的终极方案 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经遇到过这样的情况&#xff1a;想要联系一位朋友&#xff0c;却只记得他的手机号&#xff0c;不知道他的QQ号&…

作者头像 李华