算法板子:DFS(深度优先搜索、暴搜)——寻找1~n这n个数的所有排列方案

思想:深搜会一条路走到黑,把所有的位置都填满,如下图中的路径1:

在这里插入图片描述

代码——重点在dfs函数:

#include <iostream>
using namespace std;const int N = 7;
int n;// st[i]代表i这个数有没有被用过; 比如st[1]=false代表1这个数没有被用过
// path[i]代表当前i位置上放的数; 比如path[0]=1代表0这个位置上放的是数1
bool st[N + 10]; // bool数组的全部元素都会初始化为false
int path[N + 10];// u代表第几个位置, 范围为[0,u-1]
void dfs(int u)
{// 如果已经遍历到第3个位置,代表0,1,2三个位置都已经放好数字,那么输出该方案即可if (u == n){for (int i = 0; i < n; i ++ )cout << path[i] << " ";cout << endl;// 该方案输出完毕后就回溯return;}for (int i = 1; i <= n; i ++ ){// 如果1这个数没有被用过if (!st[i]){// 那么当前这个位置放1path[u] = i;// 并记录1这个数已经被用过了st[i] = true;// 然后遍历下一个位置dfs(u + 1);// 下一个位置放好数后,要恢复现场st[i] = false;}}
}int main()
{cin >> n;// n为3时,有三个数字,三个位置// dfs(0)代表第0个位置dfs(0);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3281326.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

希尔排序【C语言】

希尔排序 前言 在上一篇文章中我们了解了直接插入排序算法&#xff08;建议先阅读&#xff09;&#xff0c;但其实这个算法还是有一定优化空间的。而它优化之后&#xff0c;就变成了另一个大名鼎鼎的排序算法&#xff1a;希尔排序。 希尔排序(Shell’s Sort)是插入排序的一种…

C语言中的浮点数存储:深入探讨

案例引入 请看下面一段代码并思考结果&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int n 9;float* pFloat (float*)&n;printf("n的值为&#xff1a;%d\n", n);printf("*pFloat的值为&#xff1a;%f\n", *…

Java线程阻塞:原因

Java线程阻塞&#xff1a;原因 1. sleep()2. suspend() 和 resume()&#xff08;不推荐&#xff09;3. yield()4. wait() 和 notify()/notifyAll() &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 线程阻塞是一个重要的概念&#xff0c;它决…

Linux下docker部署drools并集成项目使用

Linux下docker部署drools并集成项目使用 一、背景介绍二、 思路方案三、过程四、总结 一、背景介绍 上一篇文章是对规则引擎的基本介绍&#xff0c;本篇文章是对于drools规则引擎的基本使用。 二、 思路方案 前提&#xff1a;首先保证主机联网、有docker环境、保证Linux空闲…

OS—文件系统

目录 一. 文件系统结构I/O 控制层基本文件系统文件组织模块逻辑文件系统 二. 文件系统布局文件系统在磁盘中的结构主引导记录(MasterBoot Record,MBR)引导块(boot block)超级块(super block)文件系统中空闲块的信息 文件系统在内存中的结构 三. 外存空间管理空闲表法空闲链表法…

面向对象 - 概述、类的创建、 实例化与内存解析

一、学习面向对象的三条主线 Java类及类的成员&#xff1a;&#xff08;重点&#xff09;属性、方法、构造器&#xff1b;&#xff08;熟悉&#xff09;代码块、内部类面向对象的特征&#xff1a;封装、继承、多态、&#xff08;抽象&#xff09;其他关键字的使用&#xff1a;…

北欧风情在浦东,5 大公司为你定制美好

在繁华的浦东&#xff0c;追求高品质生活的您&#xff0c;是否渴望拥有一个充满北欧风情的温馨家园&#xff1f;今天&#xff0c;我们将为您推荐 5 家顶尖的装修公司&#xff0c;它们将以精湛的工艺和独特的设计理念&#xff0c;为您量身定制梦想中的北欧风家居。 推荐一&#…

大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

大厂的堡垒机到底是啥?为什么需要它?

什么是堡垒机 堡垒机&#xff0c;即在一个特定的网络环境下&#xff0c;为了保障网络和数据不受来自外部和内部用户的入侵和破坏&#xff0c;而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为&#xff0c;以便集中报警、及…

【文件解析漏洞】实战详解!

漏洞描述&#xff1a; 文件解析漏洞是由于中间件错误的将任意格式的文件解析成网页可执行文件&#xff0c;配合文件上传漏洞进行GetShell的漏洞! IIS解析漏洞&#xff1a; IIS6.X&#xff1a; 方式一:目录解析 在网站下建立文件夹的名字为.asp/.asa 的文件夹&#xff0c;其目…

免费发送邮件两种接口方式:SMTP和邮件API

SMTP与邮件API在处理大批量邮件发送时&#xff0c;哪个更稳定&#xff1f; 在现代信息化的社会中&#xff0c;邮件已成为不可或缺的沟通工具。无论是个人还是企业&#xff0c;发送邮件都是日常工作的一部分。AokSend将详细介绍两种常用的免费发送邮件接口方式&#xff1a;SMTP…

麒麟V10系统统一认证子系统国际化

在适配麒麟V10系统统一认证子系统国际化过程中&#xff0c; 遇到了很多的问题&#xff0c;关键是麒麟官方的文档对这部分也是粗略带过&#xff0c;遇到的问题有: &#xff08;1&#xff09;xgettext无法提取C源文件中目标待翻译的字符串。 &#xff08;2&#xff09;使用msgf…

程序一调用这个接口就会崩溃, 因为他的静态库添加是放在release文件下,而我用的debug模式

程序一调用这个接口就会崩溃 因为他的静态库添加是放在release文件下 而我用的debug模式 DESTDIR ../x64/ReleaseINCLUDEPATH ./../3rdparty/ZZDecode/include LIBS -lopengl32 \-lglu32 \-luser32 \./../3rdparty/ZZDecode/x64/release/ZZDecodeInterface.lib

Python软件开发:AI毕业设计生成器引领未来

&#x1f31f; 革新软件开发&#xff1a;Python毕业设计生成器引领未来 &#x1f680; 目录 &#x1f31f; 革新软件开发&#xff1a;Python毕业设计生成器引领未来 &#x1f680;&#x1f393; 课题简介&#x1f31f; 开发目的&#x1f4c8; 开发意义 &#x1f4da; 研究方法&…

Jvm的无关性

Jvm具有无关性&#xff0c;主要体现在两个方面&#xff1a; 平台无关性&#xff1a;任何操作系统都能运行Java代码。 语言无关性&#xff1a;Jvm能运行除Java以外的其他代码。 Java源代码首先需要使用Javac编译器编译成 .class文件&#xff0c;然后由Jvm执行.class文件&…

如何准备 Java API 文档以供下游对接

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

如何在 Odoo 16 Studio 中添加智能选项卡和管道

具有优雅定制功能的软件系统&#xff08;如 Odoo ERP&#xff09;可让客户调整和个性化其公司应用程序。定制在过去并不普遍&#xff0c;但现在对于组织来说&#xff0c;满足客户需求和需求激增至关重要。即使许多行业的竞争很少&#xff0c;但当前的竞争市场仍不稳定。尽管引入…

Mybatis批量更新数据库错误

问题&#xff1a;记录一次使用Mybatis批量更新数据库的错误&#xff0c;错误信息&#xff0c;Error updating database. Cause: org.postgresql.util.PSQLException: 错误: 字段 "update_time" 的类型为 timestamp without time zone, 但表达式的类型为 text 建议&am…

Prometheus+Grafana 监控平台实践-搭建常用服务监控告警

前言 Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机&服务,分享日常使用的一些使用经验 文…

7月速览| 卓翼飞思获荣誉、助大赛、展技术!

行业殊荣 ● 荣获 “全国低空经济先导产业行业产教融合共同体” 常务理事单位称号&#xff0c;助力打造低空经济产业领域人才智库。 “共同体”是低空经济领域&#xff0c;国家职教战略与新质生产力发展战略融合对接的重要成果。旨在汇聚优质资源&#xff0c;搭建交流平台&…