zoukankan      html  css  js  c++  java
  • 力扣Leetcode 46. 全排列

    全排列

    给定一个 没有重复 数字的序列,返回其所有可能的全排列。

    示例:

    输入: [1,2,3]
    输出:
    [
      [1,2,3],
      [1,3,2],
      [2,1,3],
      [2,3,1],
      [3,1,2],
      [3,2,1]
    ]
    

    题解思路

    官方题解的dfs回溯 暴力都太冗长了 既然C++ STL有全排列的函数 能省则省

    class Solution {
    public:
        vector<vector<int>> permute(vector<int>& nums) {
            sort(nums.begin(), nums.end());
            vector<vector<int>> res; // 新开一个元素为vector的vector 
            do {
                res.emplace_back(nums); // emplace_back的效用==push_back 但是简单说 前者省空间
            } while (next_permutation(nums.begin(), nums.end()));
            return res;
        }
    };
    

    next_permutation()大家应该都不会陌生 另一篇STL的博文也有提及

  • 相关阅读:
    一:字符串中匹配中文
    flask+gevent的异步框架
    linux常见的操作指令
    Markdown语法
    Git常用操作
    Vim
    IDEA使用汇总
    Maven基本使用汇总
    Zookeeper问题汇总
    编程最佳实践
  • 原文地址:https://www.cnblogs.com/coderzjz/p/12773918.html
Copyright © 2011-2022 走看看