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 };
  • 相关阅读:
    [日料探店] 食一料理
    工地英语
    C++20协程解糖
    C++20协程解糖
    C++20协程解糖
    单表操作
    数据库查询语句罗列
    数据库简易介绍
    mysql的常用操作
    css基础
  • 原文地址:https://www.cnblogs.com/LCCRNblog/p/5148639.html
Copyright © 2011-2022 走看看