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

JAVA练习328- 全排列

题目概览

给定一个不含重复数字的数组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中的所有整数互不相同

来源:46. 全排列 - 力扣(LeetCode)

解题分析

方法:回溯

以 [1,2,3] 为例,它的排列可以看做:
先固定 1,然后固定 2,得到 [1,2,3],然后不固定 2,交换 3 和 2 得到 [1,3,2],
然后不固定 1,交换 1 和 2,
然后固定 2,再固定 1,得到 [ 2,1,3],然后不固定 1,交换 3 和 1 得到 [2,3,1],
然后不固定 2,交换 1 和 3,
然后固定 2,再固定 1,得到 [ 3,2,1],然后不固定 2,交换 2 和 1 得到 [3,1,2]。
令当前索引为 i,那么这过程就可以看做依次 i 和 [ i, n-1 ] 的数做交换,然后递归 i + 1,继续重复直到遍历 i = n,得到结果后,将 i 和 [ i, n-1 ] 的数交换回来,继续遍历,最后得到答案。

时间复杂度:O(n×n!)
空间复杂度:O(n)

class Solution { public List<List<Integer>> permute(int[] nums) { List<Integer> list = new ArrayList<>(); for (int num: nums) { list.add(num); } List<List<Integer>> result = new ArrayList<>(); backTracking(nums.length, result, list, 0); return result; } public void backTracking(int n, List<List<Integer>> result, List<Integer> nums, int index) { if (index == n) { result.add(new ArrayList<>(nums)); return; } for (int i = index; i < n; ++i) { Collections.swap(nums, index, i); backTracking(n, result, nums, index + 1); Collections.swap(nums, index, i); } } }
http://www.jsqmd.com/news/1249332/

相关文章:

  • 2026福州春考一对一辅导是哪家好怎么选不踩坑?7个挑选要点+靠谱公司推荐 - mobible
  • MagicMouseTrails 使用教程:给 Windows 鼠标加动态光轨,桌面美化新手 5 分钟上手(2026)
  • 双软路由安装iKuai+OpenWrt
  • 嵌入式USB设备开发实战:从描述符构建到事件回调处理
  • 苏州本地连锁黄金回收品牌排行(口碑好) - 生活时报
  • 小龙虾 AI OpenClaw 怎么装?Windows 本地智能体搭建经验分享(含安装包)
  • 自建商城还差支付?RuoYi Office 商城支付产品介绍:商品·订单·聚合支付一站打通
  • 黄金回收不再雾里看花!北京2026最新避坑科普:5招看穿虚高报价、克扣损耗套路 - 一日一测评
  • 亲身到店探访重庆宝珀售后服务中心|完整热线和详细地址(2026年7月最新) - 宝珀官方售后服务中心
  • 界面控件DevExpress WinForms 2024产品路线图预览(一)
  • 2026年AI配音工具技术选型:11款免费配音软件多维度实测对比
  • 七月厦门合扬包包回收实时更新行情全厦门均可交易 - 生活商业速报
  • 每天节省3.7小时的AI自动化工作流:手把手搭建客户跟进→合同生成→财务对账全链路
  • VMWARE虚拟机安装软路由(openwrt/ikuai/istoreos)
  • JAVA练习329- 子集
  • [最新版]PowerPoint纯vba实现流畅逐帧动画(无任何辅助)
  • 学编程用拼音命名,挺好的
  • 「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(四)
  • 名包回收2026邯郸指南 毓典寄卖行本地奢侈品回收实体店铺 - 毓典寄卖行
  • 一套系统服务多组织怎么选:集团、连锁、SaaS 创业的多租户方案对比(2026)
  • 2026 翡翠店铺推荐全攻略:避坑 + 实测榜单,瑞丽市论邦珠宝店为何稳居榜首? - 互联网科技品牌测评
  • AtCoder Beginner Contest 466
  • OpenWrt 软路由解析公网IPV6域名访问家庭NAS的问题答疑
  • 麒麟信安服务器操作系统V3.5.2重磅发布!
  • 2026国内技术转移硕士MTT项目全盘点-交大领衔综合对比与选型指南
  • 2026年河北玻璃钢管道厂家挑选攻略 烁歌环保等企业实力梳理 - 八方八方
  • 「Qt Widget中文示例指南」如何实现文档查看器?(二)
  • 飞书AI流程不再“伪智能”:如何用Rule Engine+LLM Prompt链实现真正条件驱动(附可审计日志模板)
  • 白城奢侈品回收哪家好?亿兔奢品专业服务全解析 - 你就像风一样
  • 10支海外采购团驻场,2027北京算力展全球商贸对接升级