zoukankan      html  css  js  c++  java
  • Leetcode题解(十六)

    44

    ----------------------------------------------------------------分割线------------------------------------------------------------------------------------

    46、Permutations

    题目:

    题目意思是给定n个不同的数,打印出所有的排列。

    http://blog.csdn.net/fly_yr/article/details/48139165

    这一篇博客简单介绍了如何使用STL生成数组的全排列,代码如下:

     1 class Solution {
     2 public:
     3     vector<vector<int>> permute(vector<int>& nums) {
     4         vector<vector<int> > ret;
     5 
     6         if (nums.empty())
     7             return ret;
     8 
     9         sort(nums.begin(), nums.end());
    10         ret.push_back(nums);
    11         while (next_permutation(nums.begin(), nums.end()))
    12             ret.push_back(nums);
    13 
    14         return ret;
    15     }
    16 };

    为了提升自己的算法能力,当然不能只会使用STL,而是需要理解其怎样实现这个算法,并且动手自己写出来,这样对自己的能力才会有很大的提升。

     ---------------------------------------------------------------分割线----------------------------------------------------------------------

    47、Permutations II

    这一题和46题的区别就是数组中的数可能有相同的数。其实方法都和46题一样,代码如下:

     1 class Solution {
     2 public:
     3     vector<vector<int>> permuteUnique(vector<int>& nums) {
     4         vector<vector<int> > ret;
     5 
     6         if (nums.empty())
     7             return ret;
     8 
     9         sort(nums.begin(), nums.end());
    10         ret.push_back(nums);
    11         while (next_permutation(nums.begin(), nums.end()))
    12             ret.push_back(nums);
    13 
    14         return ret;
    15     }
    16 };
  • 相关阅读:
    PHP编码规范-笔记
    MySQL
    烧毁的诺顿
    页面查询案例(使用redis数据库)
    非关系型数据库-redis
    校验用户名是否存在
    使用Cookie实现浏览器显示上次登录时间
    Java文件下载
    随机验证码生成
    Response对象
  • 原文地址:https://www.cnblogs.com/LCCRNblog/p/5148639.html
Copyright © 2011-2022 走看看