【蓝桥杯试题】递归实现排列型枚举
💃🏼 本人简介:男
👶🏼 年龄:18
🤞 作者:那就叫我亮亮叭
📕 专栏:蓝桥杯试题
文章目录
- 1. 题目描述
- 2. 代码展示
- 法一:dfs
- 法二:next_permutation
- `next_permutation/prev_permutation`函数:
- 最后,感谢大家支持u (^ _ ^)
1. 题目描述
把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。
-
输入格式
输入一个整数 n。 -
输出格式
-
按照从小到大的顺序输出所有方案,每行 1 个。
-
首先,同一行相邻两个数用一个空格隔开。
-
其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。
-
数据范围
1 ≤ n ≤ 9 -
输入样例:
3
- 输出样例:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
2. 代码展示
法一:dfs
#include<bits/stdc++.h>
using namespace std;const int N = 15;
int n, path[N]; //用path存储数据【保存序列】
bool vis[N]; //用vis表示是否被使用过void dfs(int x){if(x > n){ //如果超出n,则表示都填完了,那么按存储的顺序全部打印for(int i = 1; i <= n; i++){if(vis[i]) cout << path[i] << " ";} cout << endl;return ;}//未超出的话,则需要填入x,保存在path中for(int i = 1; i <= n; i++){ //依次选择1~n中是否被使用if(!vis[i]){ //如果未被使用vis[i] = true; //记录下来使用过,修改状态path[x] = i; //存进path中dfs(x + 1); //遍历下一位vis[i] = false; //回溯}}
}int main(){cin >> n;memset(path, 0, sizeof(path)); //初始化path全为0dfs(1);return 0;
}
法二:next_permutation
next_permutation/prev_permutation
函数:
-
next_permutation
函数将按字母表顺序生成给定序列的下一个较大的排列,直到整个序列为降序为止 -
prev_permutation
函数与之相反,是生成给定序列的上一个较小的排列 -
next_permutation
(数组头地址,数组尾地址);若下一个排列存在,则返回真,如果不存在则返回假 -
若求上一个排列,则用
prev_permutation
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;const int N = 15;
int n, a[N]; //利用next_permutation函数
//next_permutation(数组头地址,数组尾地址);若下一个排列存在,则返回真,如果不存在则返回假.若求上一个排列,则用prev_permutation
int main(){cin >> n;for(int i = 1; i <= n; i++){a[i] = i;}do{for(int i = 1; i <= n; i++){cout << a[i] << " ";}cout << endl; }while(next_permutation(a + 1, a + n + 1));return 0;
}
最后,感谢大家支持u (^ _ ^)
如果感觉这篇文章对你有帮助的话,不妨三连支持下,十分感谢(✪ω✪)。
printf("点个赞吧*^*");
cout << "收藏一下叭o_o";
System.out.println("评论一下吧^_^");
print("关注一下叭0-0")
相关文章:
【蓝桥杯试题】递归实现排列型枚举
💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:蓝桥杯试题 文章目录1. 题目描述2. 代码展示法一:dfs法二:next_perm…...
入职字节测试岗外包一个月,我离职了...
有一种打工人的羡慕,叫做“大厂”。真是年少不知大厂香,错把青春插稻秧。但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂的“…...
weak学习入门-01
作用:集中在特征提取、算法选择和参数调优上 本篇几乎是汇总了大佬的参考 官网https://www.cs.waikato.ac.nz/ml/weka 大佬的入门教程:初试weka数据挖掘 - 加拿大小哥哥 - 博客园 (cnblogs.com) 参考书:数据挖掘实用机器学习技术(原书第2版)...
线程池中shutdown()和shutdownNow()方法的区别
线程池中shutdown()和shutdownNow()方法的区别 一般情况下,当我们频繁的使用线程的时候,为了节约资源快速响应需求,我们都会考虑使用线程池,线程池使用完毕都会想着关闭,关闭的时候一般情况下会用到shutdown和shutdow…...
高可用/性能
文章目录1.数据库系统架构发展(1)单库架构(2)主备架构(3)主从架构2.主从复制主从同步配置主从复制模式(1)异步复制(2)半同步复制(3)全…...
PriorityQueues优先队列
优先队列优先队列(priority queue)是计算机科学中的一类抽象数据类型。优先队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。优先队列通常使用“堆”…...
arm 堆栈
先转一篇 stm32 堆和栈(stm32 Heap & Stack)【worldsing笔记】_stm32堆栈_slj_win的博客-CSDN博客 关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的。 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘&…...
leetcode-面试题 05.02. Binary Number to String LCCI
Description Given a real number between 0 and 1 (e.g., 0.72) that is passed in as a double, print the binary representation. If the number cannot be represented accurately in binary with at most 32 characters, print “ERROR”. Example1: Input: 0.625Outpu…...
C语言函数阐述
C 函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,…...
二叉树——把二叉搜索树转换为累加树
538. 把二叉搜索树转换为累加树 链接 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下…...
Java使用DFA算法实现敏感词过滤
1 前言敏感词过滤就是你在项目中输入某些字(比如输入xxoo相关的文字时)时要能检测出来,很多项目中都会有一个敏感词管理模块,在敏感词管理模块中你可以加入敏感词,然后根据加入的敏感词去过滤输入内容中的敏感词并进行…...
UG NX二次开发(C#)-外挂 - 配置文件说明(.men文件/.rtb文件/.trb文件)
文章目录 1、前言2、UG NX菜单说明2.1UG NX的Ribbon样式说明2.2 UG NX的Ribbon配置文件3、外挂的加载配置文件说明3.1 创建配置文件夹3.2 填写.men文件3.2 填写.rtb文件3.2 填写.tbr文件4、将外挂加载到UG NX菜单中5、重启UG NX,就可以实现外挂加载了。1、前言 UG NX二次开发…...
Web3中文|日本元宇宙经济“狂飙”
2月27日,三菱、富士通和其它科技公司发布关于建立“日本元宇宙经济区”的协议,表示将联手从角色扮演游戏的角度创建开放的元宇宙基础设施,以推动日本的Web3战略。据了解,日本一直在努力将Web3技术纳入其国家议程,去年1…...
@Autowired和@Resource到底有什么区别
Autowired 和 Resource 都是 Spring/Spring Boot 项目中,用来进行依赖注入的注解。它们都提供了将依赖对象注入到当前对象的功能,但二者却有众多不同,并且这也是常见的面试题之一,所以我们今天就来盘它。 Autowired 和 Resource 的…...
2023年最新阿里云服务器价格表出炉(精准收费标准及配置价格表)
阿里云在全球率先宣布了基于 Intel Ice Lake 处理器的第七代云服务器ECS,性能提升的同时降低了报价,性价比更高了。进入2023年阿里云服务器价格依然是大家关心的问题,事实上阿里云服务器租用价格和最新收费标准都可以通过官方云服务器计算器来…...
ElasticSearch - SpringBoot整合ES实现文档的增删改操作
文章目录1. ElasticSearch和kibana的安装和配置2. SpringBoot 项目环境搭建3. 创建索引4. 索引文档5. 更新文档6. 删除文档https://www.elastic.co/guide/en/elasticsearch/reference/current/search-your-data.htmlhttps://www.elastic.co/guide/cn/elasticsearch/guide/curre…...
嵌入式 LVGL移植到STM32F4
目录 LVGL简介 1、特点 2、LVGL的硬件要求 3、相关网站 4、LVGL源码下载 5、LVGL移植要求 5.1 移植过程-添加源码 2、更改接口文件 3、显示实现 4、添加外部中文字体的方法 5、编译下载后有几种情况 6、调用显示 6、GUI-Guider使用 6.1 安装软件 6.2 使用…...
VSCode——SSH免密登录
文章目录本地PC端(一般为Windows)1. 检查自己是否已经生成公钥2. 配置VScode的SSH config远程服务器端1. 服务器新建授权文件2. 赋权限3. 重启远程服务器的ssh服务最全步骤:【设置ssh免密不起作用?彻底搞懂密钥】vscode在remote S…...
python未来应用前景怎么样
Python近段时间一直涨势迅猛,在各大编程排行榜中崭露头角,得益于它多功能性和简单易上手的特性,让它可以在很多不同的工作中发挥重大作用。 正因如此,目前几乎所有大中型互联网企业都在使用 Python 完成各种各样的工作࿰…...
webpack基本使用和开发环境配置
目录 1 webpack 基本使用 01 webpack 简介 02 webpack 初体验 2 webpack开发环境配置 03 打包样式资源 04 打包html资源 05 打包图片资源 06 打包其他资源(以打包icon为例) 07 devServer 08.开发环境配置 1 webpack 基本使用 由于笔记文档没有…...
3.2 http协议
一.HTTP协议1.概述是计算机网络的核心概念,是一种网络协议网络协议种类非常多,其中IP,TCP,UDP...其中还有一个应用非常广泛的协议.HTTPHTTP协议是日常开发中用的最多的协议HTTP处在TCP/IP五层协议栈的应用层HTTP在传输层是基于TCP的,(http/1 HTTP/2是基于TCP,最新版本的HTTP/3是…...
页面访问升级出错怎么解决
相信大家在访问网站的时候时常会遇到页面访问界面升级,暂时不可能进行访问操作,可能遇到这种情况很多小伙伴们都不知道怎么版,其实互联网网页在正常使用过程中是不会出现这种问题的。那么如果遇到页面访问界面升级怎么办?页面访问界面升级通…...
leetcode 181. 超过经理收入的员工
SQL架构 表:Employee ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | | salary | int | | managerId | int | ---------------------- Id是该表的主键。 该表的…...
任务类风险漏洞挖掘思路
任务类风险定义: 大部分游戏都离不开任务,游戏往往也会借助任务,来引导玩家上手,了解游戏背景,增加游戏玩法,提升游戏趣味性。任务就像线索,将游戏的各个章节,各种玩法,…...
2023年Dubbo常见面试题
2023年Dubbo常见面试题 Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么? 可以通信的,启动 dubbo 时,消费者会从 zk 拉取注册的生产者的地址接口等数据,缓存在本地。…...
星光2开发板使用ECR6600U无线wifi网卡的方法
visionfive2 开发板性能还是不错的,有些人买的时候会带一个无线wifi网卡,但是官方提供的操作系统没有驱动。 所以需要自己编驱动(他大爷的)。 还好有人已经踩过坑了。 星光2之USB无线网卡使用教程【新增RTL8832AU WiFi6双频无线…...
【ArcGIS Pro二次开发】(11):面要素的一键拓扑
在工作中,经常需要对要素进行拓扑检查。 在ArcGIS Pro中正常的工作流程是在数据库中【新建要素数据集——新建拓扑——将要素加入拓扑——添加规则——验证】,工作流程不算短,操作起来比较繁琐。 下面以一个例子演示如何在ArcGIS Pro SDK二次…...
【实现点击下载按钮功能 Objective-C语言】
一、实现点击下载按钮功能, 1.接下来,我们再实现另外一个功能,是什么,点击下载按钮吧: 点击下载按钮,是不是要有效果啊, 就是给大家实现这个功能, 首先,我们要实现单击这个效果,是不是要给按钮注册单击事件吧, 请问,这个按钮在哪里啊,是在控制器里面吗,不是,…...
界面控件DevExpress WinForm——轻松构建类Visual Studio UI(三)
DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…...
项目实战-瑞吉外卖day01(B站)
瑞吉外卖-Day01课程内容软件开发整体介绍瑞吉外卖项目介绍开发环境搭建后台登录功能开发后台退出功能开发1. 软件开发整体介绍作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责&am…...
东莞市建设安监局网站/网站推广教程
http://www.cnblogs.com/xiaoxinwt/p/5329840.html转载于:https://www.cnblogs.com/kingxiaozi/p/6097833.html...
做企业网站怎么选操作系统/深圳在线制作网站
Blade是一款简洁优雅、微内核设计的 Java Web 框架。 主要特性 轻量级:新一代JavaWeb框架,不依赖更多的库,摆脱SSH的臃肿,模块化设计,使用起来更轻便!简洁高效:代码简洁、结构清晰,…...
ipad 建网站/百度导航
环境: VS2019 net5.0 ModuleInitializerAttribute:模块初始化 被修饰为ModuleInitializerAttribute的静态方法会被编译器在编译时,在全局的静态构造函数中生成此代码调用。如果有多个被修饰为初始化器的函数,则每个函数生成一个初始化器代…...
怎样做网站的背景图片/推广引流话术
使用的apache的httpclient的jar包,做的http图片上传,上传时,服务器总返文件格式不对。后来发现,是由于在创建FileBody时,使用了默认的ContentType引起的。所以服务器有判断文件类型的要求的时候,创建FlieBo…...
短网址生成器手机版/廊坊关键词优化排名
1、安装GIT下载地址:http://git-scm.com/download,安装好GIT并设置环境变量,将C:\Program Files (x86)\Git\bin放到系统变量中即可。2、设置初始化参数输入在命令行以下命令:git config --global user.name "你的用户名"git config --global …...
公司网站做推广支出分录/seo销售代表招聘
Keras CIFAR-10图像分类 AlexNet 文章目录 Keras CIFAR-10图像分类 AlexNetkeras介绍keras具有的特性keras与后端引擎keras设计原则安装keras导入库控制GPU显存(可选)加载 CIFAR-10 数据集可视化数据数据预处理AlexNet网络开始训练模型可视化准确率、损失函数保存模型预测结果…...