news 2026/6/5 11:19:30

LeetCode047全排列II

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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) }

是否还会记着我的样子.

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

念何架构之路

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 6:20:16

Qwen3-14B vs 其他14B模型:性能与资源消耗全面对比

Qwen3-14B 与其他14B模型&#xff1a;性能与资源消耗的深度对比 在当前企业加速拥抱AI的大背景下&#xff0c;如何选择一款既能胜任复杂任务、又不会压垮基础设施的语言模型&#xff0c;成了技术决策者面临的核心难题。参数量并非唯一指标——真正关键的是在真实场景中能否以合…

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

虚拟显示器创建终极指南:3步轻松扩展你的数字工作空间

虚拟显示器创建终极指南&#xff1a;3步轻松扩展你的数字工作空间 【免费下载链接】virtual-display-rs A Windows virtual display driver to add multiple virtual monitors to your PC! For Win10. Works with VR, obs, streaming software, etc 项目地址: https://gitcod…

作者头像 李华
网站建设 2026/5/30 20:00:39

GitHub Wiki文档编写建议:为Qwen3-VL-8B项目建立知识库

GitHub Wiki文档编写建议&#xff1a;为Qwen3-VL-8B项目建立知识库 在多模态AI迅速渗透各行各业的今天&#xff0c;如何让一个强大的视觉语言模型真正“落地”&#xff0c;而不只是停留在论文或Demo中&#xff1f;答案往往不在于模型本身有多先进&#xff0c;而在于背后的工程化…

作者头像 李华
网站建设 2026/6/2 18:32:17

3步搞定百度网盘秒传:新手零基础上手教程

3步搞定百度网盘秒传&#xff1a;新手零基础上手教程 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc 百度网盘秒传脚本是一款革命性的文件管理工具&#xf…

作者头像 李华
网站建设 2026/6/2 22:41:23

告别圣遗物管理噩梦:3分钟学会椰羊工具箱的智能玩法

告别圣遗物管理噩梦&#xff1a;3分钟学会椰羊工具箱的智能玩法 【免费下载链接】cocogoat-client A toolbox for Genshin Impact to export artifacts automatically. 支持圣遗物全自动导出的原神工具箱&#xff0c;保证每一行代码都是熬夜加班打造。 项目地址: https://git…

作者头像 李华
网站建设 2026/6/3 18:47:40

38、调试与性能分析全攻略

调试与性能分析全攻略 GDB 常用命令 在调试二进制文件时,GDB 提供了一系列实用的命令,以下是一些常用命令及其功能: | 命令 | 功能 | | — | — | | file | 设置正在调试的二进制文件的文件名,调试符号会从该文件加载。 | | dir | 向应用程序源代码文件的搜索路径中添…

作者头像 李华