leetcode 47. Permutations II(排列II)

2024银行科技岗笔试通关秘籍:从资料准备到实战技巧 本文系统解析了2024年银行科技岗笔试的考察内容与备考策略。文章指出,笔试是一场涵盖通用能力测试、计算机专业基础、金融科技知识和英语性格测试的复合型考试,并重点提供了数据结构与算法、计算机网络、数据库等高频考点的深度解析与实战突破技巧,帮助考生高效准备,顺利通关。 阅读详情

Given a collection of numbers, nums, that might contain duplicates, return all possible unique permutations in any order.

Example 1:

Input: nums = [1,1,2]
Output:
[[1,1,2],
[1,2,1],
[2,1,1]]
Example 2:

Input: nums = [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

给一个数组,输出数组元素的所有的unique排列。
数组中有重复的数字,但排列不能重复。

思路:
DFS
因为有重复的数字,为了跨过重复的数字,要让重复的数字放在一起,所以要排序。

因为是排列,会出现不同的顺序;所以DFS内可以访问当前元素之前的元素,DFS内访问下标要从0开始。

另外跳过重复元素时,不能一见到和前面元素一样就跳过,
比如[1, 1, 2]
如果看见第2个1和第1个1一样就直接跳过,那样元素就不够了。

怎么判断呢,
在看见和前面元素一样的时候,要判断前面的是不是正在访问,如果正在访问说明还需要添加元素,不然不够了,不需要跳过。
如果前面元素没有在访问,说明要以现在元素为首DFS了,会出现和前面排列一样的情况,这时要跳过。

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    int n = 0;
    boolean[] visited;
    
    public List<List<Integer>> permuteUnique(int[] nums) {
        n = nums.length;
        visited = new boolean[n];
        
        Stack<Integer> st = new Stack<>();
        Arrays.sort(nums);
        
        dfs(nums, st);
        
        return res;
    }
    
    void dfs(int[] nums, Stack<Integer> st) {
        if(st.size() == n) {
            res.add(new ArrayList<Integer>(st));
            return;
        }
        
        for(int i = 0; i < n; i ++) {            
            if(visited[i]) continue;
            if(i > 0 && nums[i] == nums[i-1] && !visited[i-1]) continue;
            
            st.push(nums[i]);
            visited[i] = true;
            
            dfs(nums, st);
            
            st.pop();
            visited[i] = false;
        }
    }
}
UCIE Specification详解(七) Logical Physical Layer(逻辑物理层) 阅读详情

相关推荐

docker部署zabbix6.2.7+grafana

docker部署zabbix6.2.7+grafana。

qq_48391148的博客 3654

LeetCode 47:全排列 II(Permutations II)解法汇总

文章目录Solution 更多LeetCode题解 Given a collection of numbers that might contain duplicates, return all possible unique permutations. Example: Input: [1,1,2] Output: [ [1,1,2], [1,2,1], [2,1,1] ] Solution...

Utopiabuntu的博客 325

国科大 雁栖湖校区 研一上 课程避坑与生存指南

本文为国科大雁栖湖校区研一新生提供全面的课程避坑与生存指南,涵盖选课策略、核心课程学习技巧、校园生活攻略及心态管理。重点解析算法设计与分析、人工智能原理等硬核课程的学习方法,并分享食堂、住宿、自习室等实用生存技巧,帮助新生高效适应研究生生活。

weixin_29304985的博客 299

【数字全排列】LeetCode 47. Permutations II

LeetCode 47. Permutations II Solution1:我的答案 和第46题的思路差不多,把vector换成了set就OK啦~~~ class Solution { public: vector&amp;amp;amp;lt;vector&amp;amp;amp;lt;int&amp;amp;amp;gt;&amp;amp;amp;gt; permuteUnique(vector&amp;amp;amp;lt;int&amp

Allenlzcoder的博客 779

ArcGIS将以大西洋居中的世界地图以中国居中显示

ArcGIS将以大西洋居中的世界地图以中国居中显示 并进行经纬度格网的调整输出

jiekeheiguanglan的博客 5703

SpringBoot实战——仿b站项目(一)

热部署就是当应用程序这种运行的时候升级冉家或者修改某一部分代码、配置文件时,无需手动启动应用,即可修改的部分生效工具 + IDEA配置。

weixin_52880572的博客 3453

LeetCode 47 Permutations II 全排列之二

LeetCode 47 Permutations II 全排列之二 Given a collection of numbers that might contain duplicates, return all possible unique permutations. Example Input: [1,1,2] Output: [ [1,1,2], [1,2,1], [2,1,1] ] 解题思路 这题和LeetCode 46 全排列大致相同,由于输入数组有可能出现重复数字,这里我们需要进行剪

qq_38801813的博客 248

利用wolcmd.exe批处理执行远程唤醒

代码如下: @echo off cls :check if exist wolcmd.exe goto targetmac echo 缺少wolcmd.exe echo. goto end :targetmac cls echo -------------------------------------------------------- echo 目标主机PC-01地址:40235678A...

Chriseo的博客 6946

leetcode 47. Permutations II-排列|回溯算法

原题链接:47. Permutations II 【思路1-Java】 这题是leetcode 46. Permutations-全排列|回溯|递归|非递归思路1延伸,每次交换 nums 中的两个元素,新生成一种新的组合,将该组合放入中间集,再放入结果集中,对于重复元素的处理,这里采用 set 集合进行去重,思路虽然好理解,可是也费了不少空间: public class Solution {

hdtopku 4615

YOLO26改进策略【模型轻量化】| 替换骨干网络为 2024轻量化网络MoblieNetV4:移动生态系统的通用模型

本文记录的是基于MobileNet V4的YOLO26目标检测轻量化改进方法研究。主要用于轻量化应用部署,相关轻量化改进与其整体架构非常适配。通过整合、以及优化的,能够在在不降低性能指标的前提下,降低计算成本。本文配置了原论文中、、、和五种模型,以满足不同的需求。MobileNetV4: Universal Models for the Mobile Ecosystem是一系列适用于移动生态系统的通用高效模型。以下将详细介绍其轻量化设计的出发点、原理、结构和优势:的实现代码如下: 四、修改步骤 4.1 修

Limiiiing的博客 826

如何在 SAP BTP 上使用 Integration Suite 消费 S/4HANA Cloud API

SAP Integration Suite是一个集成平台即服务(iPaaS),允许开发人员顺利地将内部部署和基于云的应用程序和流程与SAP管理的工具和预构建内容进行集成。登录 SAP Business Technology Platform Cockpit,进入 integration suite:再点击 API management 进入 API Portal:或者直接从收藏夹里打开链接:https://304a49cetrial.integrationsuitetrial-apiportal.cfapp

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1696

leetcode 47. Permutations II[排列]

https://leetcode.com/problems/permutations-ii/ Given a collection of numbers that might contain duplicates, return all possible unique permutations. Example: Input: [1,1,2] Output: [ [1,1,2], ...

MissZhou要努力 212

【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(一)(附源码)

俯视角射击游戏)是一类以俯视视角进行游戏展示的射击游戏。在这种游戏中,玩家控制着一个角色或载具,从俯视的角度上方观察游戏世界,并与敌人进行战斗。这种视角使玩家能够有更好的全局观察和策略性,同时也强调快速反应和精确射击。视角:俯视角度可以是固定的,也可以随着玩家角色的移动而变化,但都允许玩家以全局视角观察整个战场,有利于制定战略和规划行动。射击:玩家通常需要使用各种武器来与敌人进行战斗,包括枪械、爆炸物等。射击动作依赖于玩家的反应速度和准确性。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7829

Leetcode 47. Permutations II 全排列 II

题目:给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ]解题思路:使用bfs进行全排列,创建used数组检查数字的使用情况。代码实现:public class Solution { public List&lt;List&lt;Integer&gt;&gt; permuteUni...

zhangzhetaojj的博客 345

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LeetCode 47. 全排列II/ Permutations II

题目链接 题目描述: 给定一个可包含重复数字的序列,返回所有不重复的全排列。 输入样例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] JavaScript代码: /** * @param {number[]} nums * @return {number[][]} */ var permuteUnique = function(nums...

qq_41330559的博客 489

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LeetCode第47题思悟—— 全排列 II(permutations-ii)

LeetCode第47题思悟—— 全排列 II(permutations-ii) 知识点预告 深度优先搜索; 数据去重; 题目要求 给定一个可包含重复数字的序列,返回所有不重复的全排列。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/permutations-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ...

博采众长,自成一派; 306

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LeetCode 47. Permutations II(排列)

原题网址:https://leetcode.com/problems/permutations-ii/ Given a collection of numbers that might contain duplicates, return all possible unique permutations. For example, [1,1,2] have the followi

James Pan 854

Leetcode 47.全排列 II(Permutations II)

Leetcode 47.全排列 II 1 题目描述(Leetcode题目链接)   给定一个可包含重复数字的序列,返回所有不重复的全排列。 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 2 题解   本题与46题全排列要求类似,输入变为了包含重复数字,并要求输出中不包含重复的排列,因此在第46题的基础上,在每一个层级上入栈的时候加上判断重...

qq_39378221的博客 215

【LeetCode】 47. Permutations II 全排列 II(Medium)(JAVA)

【LeetCode】 46. Permutations 全排列(Medium)(JAVA) 题目地址: https://leetcode.com/problems/permutations/ 题目描述: Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3]...

qq_16927853的博客 218

Leetcode #47. Permutations II 全排列2 解题报告

1 解题思想这道题,就是第二个去全排列了,我昨天也预告过了,没看过的先看下上一题的解法: Leetcode # 46. Permutations 全排列 解题报告这道题有什么不一样的么?上一道题的数组是不重复的,这一次的是可以重复的。但我们输出的时候,是不能输出重复排列的,那怎么办? 首先说明我这次的代码是基于上一次修改的。改进的方式是交换的那一个策略,所以你需要先去上一篇读一下这个具体的方式

MebiuW的专栏 2219

LeetCode 47. 全排列 II Permutations II

给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] public class Solution { public List&lt;List&lt;Integer&gt;&gt; permuteUnique(int[] nums) { List&lt...

Umbrella Corporation 1万+

LeetCode 47. 全排列 II Permutations II(C语言)

题目描述: 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 题目解答: 方法1:回溯 因为有重复元素,所以需要先排序,然后进行回溯。注意要过滤掉重复元素。 /** * Return an array of arrays of size *returnSize. * Note: The...

hang404的博客 687

LeetCode 47 Permutations II(全排列)

题目链接:https://leetcode.com/problems/permutations-ii/?tab=Description 给出数组,数组中的元素可能有重复,求出所有的全排列 使用递归算法: 传递参数List<List<Integer>> list, List<Integer> tempList, int[] nums...

weixin_30685029的博客 163

LeetCode47. Permutations II(全排列)

全排列

grllery的博客 456

Leetcode: 47. Permutations II 全排列 II

Permutations II 全排列 II 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 解法1:回溯(剪枝) vector<vector<int>> permuteUnique(vector<int>& num) { vector<vector<int>...

Coding 283

【LeetCode】#47全排列II(Permutations II)

【LeetCode】#47全排列II(Permutations II) 题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] Description Given a collection of numbers that might contain duplicates, return al...

weixin_43858604的博客 111
上一篇: orb slam3 orb特征提取与匹配部分源码解读
下一篇: 并行bit count算法
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值