当前位置: 首页 > news >正文

力扣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; } }

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

http://www.cnnetsun.cn/news/188813.html

相关文章:

  • 星图云开发者平台功能详解 | 业务逻辑编辑器:一拖一连,5分钟搞定复杂开发
  • Android存储限制突破指南:NoStorageRestrict模块深度解析
  • Thorium浏览器:重新定义Chromium性能边界的终极解决方案
  • 绝区零智能助手:全自动任务执行解决方案
  • 终极指南:如何在Android 11+系统中优化存储访问体验?
  • 3步搞定MusicBee网易云歌词插件:让音乐播放更完美
  • HashCalculator终极指南:3步掌握文件哈希值批量计算与校验
  • Minecraft终极光影指南:简单几步让方块世界焕然一新
  • 单机游戏分屏革命:Nucleus Co-Op让一台电脑变多人游戏厅
  • 自动驾驶硬件方案成本控制:从零开始的智能驾驶构建指南
  • 重返未来:1999终极自动化助手:彻底告别重复操作的游戏神器
  • 5分钟精通Chrome全页截图:Full Page Screen Capture终极使用指南
  • Nintendo Switch存储管理完全指南:从基础备份到高级分区优化
  • Full Page Screen Capture:彻底告别网页截图拼接时代
  • ThinkPad散热革命:TPFanCtrl2双风扇智能控制终极指南
  • 手把手教程:Ollydbg下载及安装从零开始配置
  • MusicBee网易云歌词插件终极配置指南:3步搞定同步歌词
  • 终极指南:为什么你需要SAI来管理拆分APK文件
  • Jellyfin Android TV版“自动连续播放“功能失效:从0.17.7版本bug到快速修复全记录
  • NoSleep防休眠工具终极指南:无需权限的Windows系统守护神器
  • WenQuanYi Micro Hei字体安装全攻略:跨平台部署与优化配置
  • 5分钟掌握Applite:macOS应用管理的终极解决方案
  • USB通信在数控机床中的数据传输应用:案例研究
  • 2026大模型产品经理学习路线全解析:从入门到精通_大模型产品经理学习路线
  • 网盘直链解析助手终极指南:八大平台高速下载解决方案
  • n8n+Ollama+Qwen3企业级RAG检索系统搭建指南,附完整代码和常见问题解决
  • Windows字体渲染终极优化指南:用MacType让文字如丝般顺滑✨
  • 免费Switch NAND管理工具:新手也能轻松掌握的系统备份教程
  • 三步搞定Switch存储管理:新手也能轻松掌握的备份扩容技巧
  • 服务器日志排查