zoukankan      html  css  js  c++  java
  • [LeetCode] Permutations

    Given a collection of numbers, return all possible permutations.

    For example, [1,2,3] have the following permutations: [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].

    class Solution {
    public:
        vector<vector<int> > permute(vector<int> &num) {
            vector<int> te;
            vector<vector<int> >res,temp;//temp里存放中间值
            int len = num.size();
            if(len<=0)
                return res;
            for(int i=0;i<len;i++)
            {
                te.push_back(num[i]);
                temp.push_back(te);
                te.clear();
            }//end for
    
            
            while(!temp.empty())
            {
                te = temp.back();
                temp.pop_back();
                if(te.size()==len)
                {
                   res.push_back(te);
                   continue;
                }    
                for(int i=0;i<len;i++)
                {
                    if(find(te.begin(),te.end(),num[i])==te.end())
                    {
                        te.push_back(num[i]);
                        temp.push_back(te);
                        te.pop_back();
                    }
                
                }
            
            }//end while
            return res;
    
        }
    };

    依然是以前堆栈的思想,但用vector实现也不错。

  • 相关阅读:
    爬取东方财富财报
    Excel自动填充功能
    解决sqlalchemy连接数据库出现的报错
    mysql常用技巧
    Linux常用命令
    my python day7
    my python day6
    my python day5
    my python day4
    Java反射技术概述
  • 原文地址:https://www.cnblogs.com/Xylophone/p/3869104.html
Copyright © 2011-2022 走看看