zoukankan      html  css  js  c++  java
  • LeetCode OJ--Permutations *

    https://oj.leetcode.com/problems/permutations/

    写出一列数的全排列

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
     
    class Solution{
    public:
        vector<vector<int> > permute(vector<int> &num) {
           vector<vector<int> > ans;
           if(num.size()==0)
               return ans;
    
           vector<int> _num = num;
           sort(_num.begin(),_num.end());
    
           ans.push_back(_num);
           while(nextPermutation(_num))
           {
               ans.push_back(_num);
           }
           return ans;
        }
    private:
        bool nextPermutation(vector<int> &num)
        {
            return next_permutation(num.begin(),num.end());
        }
    
        template<typename BidiIt>
        bool next_permutation(BidiIt first,BidiIt last)
        {
            const auto rfirst = reverse_iterator<BidiIt>(last);
            const auto rlast = reverse_iterator<BidiIt>(first);
    
            auto pivot = next(rfirst);
            while(pivot != rlast && *pivot >= *prev(pivot))
            {
                ++pivot;
            }
            
            //this is the last permute, or the next is the same as the begin one
            if(pivot == rlast)
            {
                reverse(rfirst,rlast);
                return false;
            }
            //find the first num great than pivot
            auto change = rfirst;
            while(*change<=*pivot)
                ++change;
    
            swap(*change,*pivot);
            reverse(rfirst,pivot);
            return true;
        }
    };
    
    int main()
    {
        vector<int> num;
        num.push_back(9);
        num.push_back(8);
        num.push_back(5);
         
        Solution myS;
        myS.permute(num);
        return 0;
    }
  • 相关阅读:
    spider
    python 2.X
    django 创建项目
    NameError: name 'pip' is not defined
    异常捕获
    @property
    node-Telnet
    ES6-模块化
    高级排序算法之双路快速排序
    高级排序算法之快速排序
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3784562.html
Copyright © 2011-2022 走看看