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

LeetCode047全排列II

题目:

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

示例 1:

  • 输入:nums = [1,1,2]

  • 输出:
    [[1,1,2],
    [1,2,1],
    [2,1,1]]

示例 2:

  • 输入:nums = [1,2,3]

  • 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

提示:

  • 1 <= nums.length <= 8

  • -10 <= nums[i] <= 10

java:

public class Leetcode047 { public static List<List<Integer>> res = new ArrayList<>(); public static List<Integer> path = new ArrayList<>(); public static List<List<Integer>> permute(int[] nums) { boolean[] used = new boolean[nums.length]; Arrays.fill(used, false); Arrays.sort(nums); backtrack(nums, used); return res; } private static void backtrack(int[] nums, boolean[] used) { if (path.size() == nums.length) { res.add(new ArrayList<>(path)); return; } for (int i = 0; i < nums.length; i++) { if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) { continue; } if (used[i] == false) { used[i] = true; path.add(nums[i]); backtrack(nums, used); path.remove(path.size() - 1); used[i] = false; } } } public static void main(String[] args) { int[] nums = {1, 2, 3}; System.out.println(permute(nums)); } }

Go:

package LeetCode import "sort" var ( res047 [][]int path047 []int st047 []bool ) func PermuteUnique047(nums []int) [][]int { res047 = make([][]int, 0) path047 = make([]int, len(nums)) st047 = make([]bool, len(nums)) sort.Ints(nums) dfs047(nums, 0) return res047 } func dfs047(nums []int, index int) { if index == len(nums) { tmp := make([]int, len(nums)) copy(tmp, nums) res047 = append(res047, tmp) } for i := 0; i < len(nums); i++ { if i != 0 && nums[i] == nums[i-1] && !st047[i-1] { continue } if !st047[i] { path047 = append(path047, nums[i]) st047[i] = true dfs047(nums, index+1) st047[i] = false path047 = path047[:len(path047)-1] } } } func main() { nums := []int{1, 1, 2} path := LeetCode.PermuteUnique047(nums) fmt.Println(path) }

是否还会记着我的样子.

如果大家喜欢我的分享的话.可以关注我的微信公众号

念何架构之路

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

相关文章:

  • 轮毂分类检测数据集介绍-855张 汽车制造质检 车辆维护和检测 智能交通系统 二手车评估 自动驾驶识别模块 工业机器人视觉系统
  • LangChain函数调用增强Qwen3-VL-30B的外部工具执行能力
  • 乳牛皮肤疾病检测数据集介绍-56张图片 智能养殖管理 农业疾病诊断辅助 畜牧业健康监控 图像分类模型训练与评测 教育与科研
  • 企业AI落地全攻略:从零代码到安全合规,开发者和管理者都该收藏的实战指南
  • 42、深入了解Xenomai实时系统:特性、架构与应用
  • 如何在浏览器中3分钟搞定串口调试?波特律动串口助手超详细使用指南
  • 5分钟搞定智慧树插件:让你的网课学习效率翻倍
  • 北大学者带你拖拽3D物体,像玩拼图一样让虚拟世界动起来
  • Vscode调试Python脚本运行ACE-Step:快速定位错误
  • PyTorch JIT编译提升Stable Diffusion 3.5 FP8运行效率可行性研究
  • QQ音乐数据获取Python工具完整使用指南
  • Visual Studio中的字典
  • ROG主板隐藏温度监控功能:快速激活T Sensor的实用指南
  • Vue大屏自适应终极解决方案:从适配难题到完美展示
  • 【建议收藏】小白进阶必备:RAG知识库构建实战指南与技巧
  • 开源新星:Seed-Coder-8B-Base助力PyCharm社区版实现智能编程
  • 分布式消息队列kafka【四】—— 消费者进阶提升
  • HunyuanVideo-Foley实战教程:结合HTML与JavaScript实现实时音效预览
  • 5步部署WVP-GB28181-Pro:开源国标平台的终极指南
  • X-TRACK 3D打印外壳DIY实战:从零打造专业级GPS自行车码表
  • 浏览器串口助手终极指南:零安装调试嵌入式设备
  • gpt-oss-20b与ChatGLM-6B在中文场景下的对比实验
  • 安装包体积压缩秘籍:基于vLLM的精简镜像制作
  • ZonyLrcToolsX歌词下载教程:5分钟学会跨平台音乐歌词管理
  • 终极指南:5个OpenFace面部行为分析实战技巧
  • Maven项目如何引入FLUX.1-dev?Java开发者必看集成方案
  • EasyAdmin8终极指南:5分钟构建企业级后台管理系统的完整解决方案
  • 微信小程序表格组件终极指南:5分钟快速上手miniprogram-table-component
  • PySide6 的 QSettings简单应用学习笔记
  • 使用LangChain编排Seed-Coder-8B-Base实现自动化脚本生成