news 2026/5/30 15:31:16

力扣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/30 8:55:33

Applite:重新定义macOS软件安装体验的智能助手

Applite&#xff1a;重新定义macOS软件安装体验的智能助手 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为每次安装软件都要打开终端输入复杂命令而烦恼吗&#xff1f;A…

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

低功耗工业图像采集卡 | 节能设计,适配嵌入式工业设备

在嵌入式工业设备向小型化、轻量化、长续航升级的趋势下&#xff0c;低功耗成为工业视觉系统选型的核心诉求。低功耗工业图像采集卡以“极致节能精准采集”为核心设计理念&#xff0c;通过全链路功耗优化与紧凑架构设计&#xff0c;完美适配嵌入式工业设备的严苛运行需求&#…

作者头像 李华
网站建设 2026/5/29 21:23:35

Nucleus Co-Op魔法揭秘:让单机游戏秒变多人派对

Nucleus Co-Op魔法揭秘&#xff1a;让单机游戏秒变多人派对 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 还在为单机游戏无法本地多人联机而苦恼…

作者头像 李华
网站建设 2026/5/30 12:22:12

Windows课程DHCP与IP管理:从理论到实践的深度探索与优化实践

在数字化浪潮席卷全球的今天&#xff0c;网络已成为企业运营和社会发展的核心支撑。在Windows操作系统构建的网络环境中&#xff0c;DHCP&#xff08;动态主机配置协议&#xff09;与IP管理技术如同精密齿轮&#xff0c;驱动着信息流通的节奏与秩序。通过深入学习与实践&#x…

作者头像 李华
网站建设 2026/5/30 15:40:50

如何让单机游戏秒变多人同屏体验?Nucleus Co-Op分屏神器深度解析

还在为心爱的单机游戏只能独自冒险而感到遗憾吗&#xff1f;Nucleus Co-Op这款革命性的免费开源工具&#xff0c;能够彻底改变你的游戏体验&#xff0c;让原本只支持单人游玩的游戏瞬间升级为多人同屏合作模式。无论你是想与朋友并肩作战&#xff0c;还是与家人共享欢乐时光&am…

作者头像 李华
网站建设 2026/5/29 18:25:48

自动驾驶车道线检测技术深度解析与优化实践

自动驾驶车道线检测技术深度解析与优化实践 【免费下载链接】openpilot openpilot 是一个开源的驾驶辅助系统。openpilot 为 250 多种支持的汽车品牌和型号执行自动车道居中和自适应巡航控制功能。 项目地址: https://gitcode.com/GitHub_Trending/op/openpilot 车道线检…

作者头像 李华