当前位置: 首页 > news >正文

[LeetCode]—Permutations 求全排列

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

分析:

          解法一:使用STL中next_permutations函数,如果需要自己实现见:[LeetCode]—Next Permutation (全排列字典序)

          解法二:采用DFS深搜的办法,并用一个数组标记该元素是否被访问过。

    

class Solution {
public:
    vector<vector<int> > permute(vector<int> &num) {
        vector<vector<int> > res;
        vector<int> cur;
        int count;
        int n=num.size();
        if(n<=1){
            res.push_back(num);
            return res;
        }
        int *bit=new int[n];    //表示该元素是否被访问过
        memset(bit,0,sizeof(int)*n);
        
        DFS(res,cur,num,0,bit);
        return  res;
    }
private:
   void DFS(vector<vector<int> > &res,vector<int> &cur,vector<int> &num,int count,int *bit){
       int n=num.size();
       if(count==n){
            res.push_back(cur);
            return;
       }
       for(int i=0;i<n;i++){
          if(!bit[i]){
             cur.push_back(num[i]);
             bit[i]=1;
             DFS(res,cur,num,count+1,bit);
             bit[i]=0;
             cur.pop_back();
          }
       }
    }
};


相关文章:

  • [LeetCode]—Permutations II 求全排列(有重复值)
  • 动态装卸DLL示例-匪徒和
  • 一个困扰我一个多星期的Nebula3的BUG
  • [Python]—Linux Server 系统监控程序
  • .NET 4.0中使用内存映射文件实现进程通讯
  • 中国移动短信指令大全
  • SQLServer中的循环批处理
  • IT市场10大趋势!
  • 关于Oracel 10g http://ip:1158/em 的问题
  • 18句话入门SQLServer XML
  • 移动商务潜力无穷
  • 一道可以成为.NET面试“必杀题”的“简单问题”
  • Linux 简单的网络配置练习一
  • 解决Ubuntu 9.04 耳机有声音但外放无声问题
  • IPv4和IPv6比特转发率和包转发率的关系
  • 【Leetcode】104. 二叉树的最大深度
  • css选择器
  • Docker 笔记(2):Dockerfile
  • dva中组件的懒加载
  • exif信息对照
  • gcc介绍及安装
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • markdown编辑器简评
  • MySQL几个简单SQL的优化
  • Promise面试题,控制异步流程
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Redux 中间件分析
  • Spring Boot MyBatis配置多种数据库
  • VUE es6技巧写法(持续更新中~~~)
  • webpack4 一点通
  • web标准化(下)
  • 当SetTimeout遇到了字符串
  • 第十八天-企业应用架构模式-基本模式
  • 关于springcloud Gateway中的限流
  • 容器服务kubernetes弹性伸缩高级用法
  • 数据科学 第 3 章 11 字符串处理
  • 微服务核心架构梳理
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 阿里云ACE认证之理解CDN技术
  • 带你开发类似Pokemon Go的AR游戏
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​什么是bug?bug的源头在哪里?
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # Panda3d 碰撞检测系统介绍
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (2)Java 简介
  • (30)数组元素和与数字和的绝对差
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)计算机毕业设计高校学生选课系统
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (四)模仿学习-完成后台管理页面查询
  • (一)Dubbo快速入门、介绍、使用