Day 82 47. 全排列 II 47. 全排列 II题目1234567891011121314151617181920给定一个可包含重复数字的序列 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 题目思路 1、回溯法,只不过今日的较为简单 12345678910111213141516171819202122232425262728293031class Solution {public: vector<int> vis; void backtrack( vector<int>& nums, vector<vector<int>>& ans, int i, vector<int>& res ) { int n = nums.size(); if (i == n) { ans.emplace_back(res); return; } for (int j = 0; j < n; j++) { if (vis[j] || (j > 0 && nums[j] == nums[j - 1] && !vis[j - 1])) continue; res.emplace_back(nums[j]); vis[j] = 1; backtrack(nums, ans, i + 1, res); vis[j] = 0; res.pop_back(); } } vector<vector<int>> permuteUnique(vector<int>& nums) { vector<vector<int>> ans; vector<int> res; vis.resize(nums.size()); sort(nums.begin(), nums.end()); backtrack(nums, ans, 0, res); return ans; }}; 复杂度 时间复杂度:O($2 ^ n * n$) 空间复杂度:O($n$) 91-day-algorithm #traceback Day 82 47. 全排列 II https://chaggle.github.io/2021/11/30/Leetcode/91-day/day-82/ 作者 chaggle 发布于 2021年11月30日 许可协议 Day 83-84 28. 实现 strStr() 上一篇 Day 81 40. 组合总和 II 下一篇 Please enable JavaScript to view the comments