题解:https://leetcode-cn.com/problems/permutations-ii/solution/hui-su-suan-fa-python-dai-ma-java-dai-ma-by-liwe-2/

杂度分析:(理由同第 46 题,重复元素越多,剪枝越多。但是计算复杂度的时候需要考虑最差情况。)

时间复杂度:O(N×N!),这里 NN 为数组的长度。
空间复杂度:O(N×N!)。

class Solution {
public:vector<vector<int>> permuteUnique(vector<int>& nums) {vector<vector<int>> result;if(nums.size() == 0) {return result;}// 为什么会有相同排列组合,因为有相同的数字sort(nums.begin(), nums.end());vector<bool> visited(nums.size(), false);vector<int> path;int depth = 0;dfs(nums, depth, path, visited, result);return result;}void dfs(vector<int>& nums, int depth, vector<int>& path,vector<bool>& visited, vector<vector<int>>& result) {if(depth == nums.size()) {result.emplace_back(path);}for(int i = 0; i < nums.size(); ++i) {if(visited[i] == true) {continue;}// 剪枝, 判断相邻的数字是否相同,并且前一个数字没有访问过if(i > 0 && nums[i-1] == nums[i] && visited[i-1] == false) {continue;}path.emplace_back(nums[i]);visited[i] = true;dfs(nums, depth+1, path, visited, result);visited[i] = false;path.pop_back();}}
};

47. 全排列 II相关推荐

  1. [LeetCode]47. 全排列 II

    47. 全排列 II 难度中等761收藏分享切换为英文接收动态反馈 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列. 示例 1: 输入:nums = [1,1,2] 输出 ...

  2. LeetCode 47. 全排列 II【数组,回溯算法,排序去重】

    47. 全排列 II 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列. 示例 1: 输入:nums = [1,1,2] 输出: [[1,1,2], [1,2,1], [2 ...

  3. 46. 全排列 47. 全排列 II

    46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2 ...

  4. LeetCode 47 全排列 II -- 回溯法

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/permutations-ii 题意: 给定一个可包含重复数字的序列 nums ,按任意顺序 返 ...

  5. LeetCode 47. 全排列 II

    文章目录 解法1:回溯 + 剪枝 牛客网的全排列 https://leetcode-cn.com/problems/permutations-ii/ 难度:中等   给定一个可包含重复数字的序列,返回 ...

  6. C++【力扣LeetCode算法题库】47. 全排列 II

    给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列. 示例 1: 输入:nums = [1,1,2] 输出: [[1,1,2],[1,2,

  7. Leetcode 47. 全排列 II (每日一题 20211015)

    给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列.示例 1:输入:nums = [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]] 示例 2:输入: ...

  8. 47. 全排列 II(回溯算法)

    给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列. 示例 1: 输入:nums = [1,1,2] 输出: [[1,1,2], [1,2,1], [2,1,1]] 示例 2 ...

  9. leetcode 47. 全排列 II 思考分析

    题目 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列. 思考分析以及代码 这一题和前面的做过的两个题目有所关联: leetcode 46. 全排列 思考分析 再加上lee ...

  10. LeetCode 47. 全排列 II(回溯+搜索剪枝)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例:输入: [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1] ] ...

最新文章

  1. java手写实现BST
  2. 贷款审批到底会考核哪些内容?
  3. 人工智障学习笔记——深度学习(3)递归神经网络
  4. Nginx 性能调优
  5. 很火的娇喘整蛊源码(带演示站)
  6. 图说报告|智能技术群的“核聚变”推动智能+时代到来
  7. python绘制中国_如何用Python画一个中国地图?
  8. html css 实现文字竖排模拟古籍排版
  9. win10防火墙_教你一招,在Win10上设置允许应用通过Windows防火墙,非常简单
  10. 【Only one connection receive subscriber allowed with】
  11. Python调用腾讯优图OCR通用API实现文字识别
  12. 设计一个用户注册页面,对用户输入的内容进行有效性验证,如用户名和密码不能为空,两次输入的密码必须相同,邮箱地址必须包含“@”符号等。
  13. 【转】CCIE一年后的心语
  14. 用Python画小猪佩奇
  15. Leetcode 300-最长递增子序列
  16. 宝塔面板PM2 nodejs自动化部署
  17. 你真的认为iPhone只是一部手机?苹果惊天秘密之 一
  18. 【分库分表】企业级分库分表实战方案与详解(MySQL专栏启动)
  19. AndroidStudio按钮实现点击响应详细代码
  20. 我们为什么需要LiFi

热门文章

  1. Android 可以输入的下拉框
  2. 《linux系统及其编程》实验课记录(六)
  3. 用cocos2d-android开发android游戏时调用box2d中的native本地函数问题
  4. 2011年8月5日星期五
  5. Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一
  6. JS 语法糖 0 —— 解构
  7. 12 mysql性能抖动
  8. sgu 196 Matrix Multiplication
  9. nyoj 269 VF 动规
  10. BZOJ 2878: [Noi2012]迷失游乐园( 树形dp )