全排列 II

这篇博客详细探讨了LeetCode第47题——全排列 II的问题。从题目描述出发,作者分析了解题思路,包括如何避免重复排列,并提供了完整的代码实现。接着进行了算法分析,讨论了代码的时间复杂性和空间复杂性。在代码改进部分,作者提出了优化建议以提高效率。最后,博主还列举了与该题目相关的其他全排列问题,如经典全排列和N皇后问题,供读者进一步学习和拓展。
摘要由CSDN通过智能技术生成

47. 全排列 II

来源: LeetCode 47. 全排列 II

题目描述

47. 全排列 II
给定一个可包含重复数字的序列,返回所有不重复的全排列。

示例:
输入: [1,1,2]
输出:
[
  [1,1,2],
  [1,2,1],
  [2,1,1]
]

思路分析

数据内含有重复数字,相对于全排列那道题,多了重复数字,那么解决问题的关键就是如何去除重复数据
例如[1 1 2]
除之前已经在路径中的数据外
如果在当前数据在当前层次已经参与过排列,后续的排列在当前层次已经排列过则跳过

代码

class Solution {
   
public:
    vector<vector<int>> res;
    vector<int> _nums;
    vector<vector<int>> permuteUnique
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值