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

【Leetcode 每日一题】47. 全排列 II

问题背景

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

数据约束

  • 1 ≤ n u m s . l e n g t h ≤ 8 1 \le nums.length \le 8 1nums.length8
  • − 10 ≤ n u m s [ i ] ≤ 10 -10 \le nums[i] \le 10 10nums[i]10

解题过程

这题和 全排列 的区别在于数组里可能有重复的元素,那么只要在回溯的过程中及时地跳过重复元素即可。
用哈希表来记录哪些位置上的元素已经添加到路径中了,遇到重复元素必须先填前面的元素。

具体实现

class Solution {public List<List<Integer>> permuteUnique(int[] nums) {Arrays.sort(nums);int n = nums.length;List<List<Integer>> res = new ArrayList<>();List<Integer> path = Arrays.asList(new Integer[nums.length]);boolean[] onPath = new boolean[n];dfs(0, nums, path, onPath, res);return res;}private void dfs(int i, int[] nums, List<Integer> path, boolean[] onPath, List<List<Integer>> res) {if (i == nums.length) {res.add(new ArrayList<>(path));return;}for (int j = 0; j < nums.length; j++) {if (onPath[j] || j > 0 && nums[j] == nums[j - 1] && !onPath[j - 1]) {continue;}path.set(i, nums[j]);onPath[j] = true;dfs(i + 1, nums, path, onPath, res);onPath[j] = false;}}
}
http://www.lryc.cn/news/532427.html

相关文章:

  • 车型检测7种YOLOV8
  • C语言按位取反【~】详解,含原码反码补码的0基础讲解【原码反码补码严格意义上来说属于计算机组成原理的范畴,不过这也是学好编程初级阶段的必修课】
  • 面对全球化的泼天流量,出海企业如何观测多地域网络质量?
  • 『python爬虫』获取免费IP代理 搭建自己的ip代理池(保姆级图文)
  • 21.命令模式(Command Pattern)
  • 深入探索 C++17 特征变量模板 (xxx_v)
  • 【Day32 LeetCode】动态规划DP Ⅴ 完全背包
  • 景区如何打造高质量游览观光车,提高人流量?
  • 【Ubuntu】ARM交叉编译开发环境解决“没有那个文件或目录”问题
  • 蓝桥杯之c++入门(六)【string(practice)】
  • go的sync包学习
  • 互联网上常见的,ip地址泛播什么意思
  • Linux/C高级(精讲)----shell结构语句、shell数组
  • 14.kafka开机自启动配置
  • 11 享元(Flyweight)模式
  • PHP JSON操作指南
  • 【学习笔记】计算机图形学的几何数学基础知识
  • Python因为网络原因安装依赖库报错
  • 什么是卸荷器?风力发电为什么要用卸荷器
  • SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者
  • 大数据学习之Spark分布式计算框架RDD、内核进阶
  • Unity 加载OSGB(webgl直接加载,无需转换格式!)
  • tcp/ip网络协议,tcp/ip网络协议栈
  • 【Debug】the remote host closed the connection错误信息分析
  • SpringBoot扩展篇:@Scope和@Lazy源码解析
  • “AI隐患识别系统,安全多了道“智能护盾”
  • 通向AGI之路:人工通用智能的技术演进与人类未来
  • 论文阅读:InstanceDiffusion: Instance-level Control for Image Generation
  • 7.攻防世界 wzsc_文件上传
  • 以为是响应式对象丢失导致数据没有回显