news 2026/4/3 3:59:42

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/3/14 11:12:39

移动端PDF预览实战:pdfh5.js让手势缩放变得如此简单

移动端PDF预览实战&#xff1a;pdfh5.js让手势缩放变得如此简单 【免费下载链接】pdfh5 项目地址: https://gitcode.com/gh_mirrors/pdf/pdfh5 还在为移动端PDF预览的卡顿问题头疼吗&#xff1f;当你尝试在手机浏览器中查看PDF文档时&#xff0c;是否经常遇到缩放不流畅…

作者头像 李华
网站建设 2026/4/2 23:31:26

VMware终极解锁指南:5分钟免费安装macOS虚拟机

VMware终极解锁指南&#xff1a;5分钟免费安装macOS虚拟机 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/un/unlocker 想要在VMware中体验macOS系统却受限于官方限制&#xff1f;unlocker解锁工具正是你需要的解决方案…

作者头像 李华
网站建设 2026/3/31 11:26:21

gpt-oss-20b模型训练细节揭秘:harmony格式的作用

gpt-oss-20b模型训练细节揭秘&#xff1a;harmony格式的作用 在生成式AI迅速普及的今天&#xff0c;一个尖锐的问题摆在开发者面前&#xff1a;我们是否必须依赖昂贵的云端大模型服务&#xff0c;才能获得高质量的语言生成能力&#xff1f;对于许多中小企业、独立开发者甚至科研…

作者头像 李华
网站建设 2026/3/25 8:57:00

ZonyLrcToolsX:跨平台歌词下载的终极解决方案

ZonyLrcToolsX&#xff1a;跨平台歌词下载的终极解决方案 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX 还在为音乐收藏中缺少歌词而困扰吗&#xff1f;作为一名音乐爱…

作者头像 李华
网站建设 2026/3/26 15:16:32

告别语言障碍!Screen Translator让你秒变翻译达人

还在为看不懂外文资料而烦恼吗&#xff1f;还在为语言不通而错失重要信息吗&#xff1f;今天我要为你推荐一款神器——Screen Translator&#xff0c;这款屏幕翻译工具将彻底改变你的跨语言工作方式&#xff01;✨ 【免费下载链接】ScreenTranslator Screen capture, OCR and t…

作者头像 李华
网站建设 2026/3/31 21:20:19

LibreVNA开源矢量网络分析仪:从入门到精通的完整指南

LibreVNA开源矢量网络分析仪&#xff1a;从入门到精通的完整指南 【免费下载链接】LibreVNA 100kHz to 6GHz 2 port USB based VNA 项目地址: https://gitcode.com/gh_mirrors/li/LibreVNA LibreVNA作为一款开源的100kHz到6GHz双端口USB矢量网络分析仪&#xff0c;为射频…

作者头像 李华