zoukankan      html  css  js  c++  java
  • LeetCode

    Permutations

    2013.12.15 05:08

    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].

    Solution:

      The STL library <algorithm> provides a function next_permutation(), which generates the next greater permutation for a sequence. If no greater permutation exists, the smallest permutation will be returned as the result.

      I just called next_permutation() for n! times, thus the time complexity is O(n * n!). next_permutation() requires O(n) time on average. Space complexity is O(n).

    Accepted code:

     1 // 1AC, next_permutation is handy~
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 class Solution {
     6 public:
     7     vector<vector<int> > permute(vector<int> &num) {
     8         // IMPORTANT: Please reset any member data you declared, as
     9         // the same Solution instance will be reused for each test case.
    10         for(int i = 0; i < result.size(); ++i){
    11             result[i].clear();
    12         }
    13         result.clear();
    14 
    15         int i;
    16         int n = num.size();
    17         int nn = 1;
    18         
    19         for(i = 1; i <= n; ++i){
    20             nn *= i;
    21         }
    22         
    23         for(i = 0; i < nn; ++i){
    24             result.push_back(vector<int>(num));
    25             next_permutation(num.begin(), num.end());
    26         }
    27         
    28         return result;
    29     }
    30 private:
    31     vector<vector<int>> result;
    32 };
  • 相关阅读:
    jsp 生成静态页面
    flash cs5
    sql 设置主键
    sql 分页查询
    java 获取系统时间
    android 源码 编译
    android 退出 activity
    广告平台
    android 引擎
    maya 花草 制作动画
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3474958.html
Copyright © 2011-2022 走看看