美文网首页
51. 数字排列(含重复数字)

51. 数字排列(含重复数字)

作者: 蜜糖_7474 | 来源:发表于2019-10-16 13:35 被阅读0次

题目地址:https://www.acwing.com/problem/content/87/

AC代码

class Solution {
public:
    vector<vector<int>> res;
    vector<int> path;

    bool canSwap(vector<int>& v,int start ,int end){
        for(int i=start;i<end;++i) if(v[i]==v[end]) return false;
        return true;
    }

    void f(vector<int>& v,int start,int len){
        if(start==len){
            res.push_back(path);
            return;
        }
        
        for(int i=start;i<len;++i){
            if(canSwap(v,start,i)){
                path.push_back(v[i]);
                swap(v[i],v[start]);
                f(v,start+1,len);
                swap(v[i],v[start]);
                path.pop_back();
            }
        }
    }
    
    vector<vector<int>> permutation(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        f(nums,0,nums.size());
        return res;
    }
};

总结

题解参考讨论区

相关文章

  • 51. 数字排列(含重复数字)

    题目地址:https://www.acwing.com/problem/content/87/ AC代码 总结 题...

  • 剑指offer.C++.code51-55

    51. 数组中重复的数字 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知...

  • lintcode 全排列

    给定一个数字列表,返回其所有可能的排列,第十五题是没有重复的数字,是十六题是有重复的数字。先来说没有重复数字的情况...

  • 递归与回溯:python列表排列问题

    给定一个 没有重复 数字的序列,返回其所有可能的全排列。 给定一个有重复 数字的序列,返回其所有可能的全排列且不重复

  • Leetcode.46.Permutations

    题目 给定一个没有重复数字的数字序列, 输出这写数字的全排列组合. 思路 这种全排列的问题最直接的思路就是递归. ...

  • 剑指offer 39- 数字排列

    先看不包含重复数字的 输入一组数字(不包含重复数字),输出其所有的排列方式。样例 分析:回溯的经典题回溯的思路: ...

  • python基础实例教程-九个实例哦

    排列组合 要求:列出所有可能的四位数字组合,它们彼此不同,没有重复的数字。 分析:排列就好了 代码: 阶梯求和 要...

  • 51. 数组中重复的数字

    要求 给定一个数组,返回数组中重复的数字。(如果多个重复,返回其中一个) 先排序,然后再遍历比较相邻的两个。这种方...

  • 全排列 (lintcode:permutations)

    给定一个数字列表,返回其所有可能的排列。假设没有重复数字。样例:给出一个列表[1,2,3],其全排列为: 代码: ...

  • 【剑指 offer】数字排列

    1、题目描述 输入一组数字(可能包含重复数字),输出其所有的排列方式。 样例 输入:[1,2,3]输出:  [  ...

网友评论

      本文标题:51. 数字排列(含重复数字)

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