美文网首页
[LeetCode][M] 47. 全排列 II

[LeetCode][M] 47. 全排列 II

作者: 埋没随百草 | 来源:发表于2019-08-06 00:36 被阅读0次

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

示例:

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

解题思路

在全排列的基础上去重。

实现代码

class Solution {
public:
    void doPermute(vector<int>& nums, int start, vector<vector<int>>& result) {
        if (start == nums.size()) {
            result.push_back(nums);
        }

        map<int,int> hash;
        for (int i = start; i < nums.size(); i++) {
            if (hash.find(nums[i]) != hash.end()) {
                continue;
            }

            hash[nums[i]] = 1;
            swap(nums[start], nums[i]);
            doPermute(nums, start + 1, result);
            swap(nums[start], nums[i]);
        }
    }

    vector<vector<int>> permuteUnique(vector<int>& nums) {
        vector<vector<int>> result;
        doPermute(nums, 0, result);
        return result;
    }
};

相关文章

  • 47. 全排列 II

    47. 全排列 II[https://leetcode.cn/problems/permutations-ii/]...

  • 47. 全排列 II、39. 组合总和、40. 组合总和 II

    回溯的题 47. 全排列 II[https://leetcode-cn.com/problems/permutat...

  • [LeetCode][M] 47. 全排列 II

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

  • LeetCode - 47. 全排列 II

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

  • YC-常考的题目

    46. 全排列 47. 全排列 II 有条件的全排列,打印出[1,2,2,3,4,5]的所有4不在头并且3和5不挨...

  • 搜索(二)回溯

    一、题目总结 基础问题 46.全排列 77.组合 78.子集 39.组合求和 47.全排列 II(重复元素) 90...

  • leetcode题目47. 全排列 II(java)

    题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例 代码

  • LeetCode 力扣 47. 全排列 II

    题目描述(中等难度) 和上一道题类似,不同之处就是给定的数字中会有重复的,这样的话用之前的算法会产出重复的序列。例...

  • 47.全排列II

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

  • 47. 全排列 II

    给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 思路 python3解法 来源:力扣(LeetCo...

网友评论

      本文标题:[LeetCode][M] 47. 全排列 II

      本文链接:https://www.haomeiwen.com/subject/zgdbdctx.html