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

acwing排列数字

排列数字

给定一个整数 n,将数字 1∼n排成一排,将会有很多种排列方法。

现在,请你按照字典序将所有的排列方法输出。

输入格式

共一行,包含一个整数 n。

输出格式

按字典序输出所有排列方案,每个方案占一行。

数据范围

1≤n≤7

输入样例:

3

输出样例:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

题解思路:

首先是一条路走到黑

在这里插入图片描述

然后开始回溯 因为 1 2 __ 后面只能写3 所以继续回溯发现第二位可以填3 然后第三位填2,如下图所示

在这里插入图片描述

最终可以得到这样的

在这里插入图片描述

代码
#include <iostream>

using  namespace std;
const int N = 10;
int path[N];//记录的是路径
bool a[N]; // 记录的是数组中的值是否被使用过
int n;

void def(int u)
{
	if (u == n)
	{
		for (int i = 0; i < n; i++) cout << path[i];
		puts("");
		return;
	}
	for (int i = 1; i <= n; i++)
		if ( !a[i] ) //如果没有被使用过
		{
			path[u] = i;
			a[i] = true; //标记为使用过了
			def(u + 1);//遍历下一位
			a[i] = false;

		}
}
int main()
{
	cin >> n;

	def(0);
	return 0;
}

http://www.kler.cn/news/367442.html

相关文章:

  • 若依部署上线遇到的问题
  • uniapp移动端优惠券! 附源码!!!!
  • React基础使用教程
  • IPC 进程间通信 信号量集合 Linux环境 C语言实现
  • 华为ICT题库-AI 人工智能部分
  • java项目之基于web的智慧社区设计与实现(springboot)
  • 一个和v-html功能一样且能防止xss攻击的插件
  • Java多线程详解②(全程干货!!!)Thread Runnable
  • 本地docker-compose仓库搭建以及推送docker镜像到仓库
  • 音视频入门基础:AAC专题(11)——AudioSpecificConfig简介
  • 【ChatGPT】在多轮对话中引导 ChatGPT 保持一致性
  • 【Qt6聊天室项目】 主界面功能实现
  • 基于SpringBoot的酒店管理系统的设计与实现
  • echarts5.2.2实现 水球图表
  • pdf表格读取和筛选
  • Git process for submit and download
  • 传输层TCP
  • Flutter鸿蒙next 中如何实现 WebView【跳、显、适、反】等一些基础问题
  • 使用无线方式连接Android设备进行调试的两种方法
  • 基于Spring boot+Vue 网吧管理系统(源码+LW+部署讲解+数据库+ppt)
  • Rancher2.6管理k8s1.23
  • SQL实战训练之,力扣:1831. 每天的最大交易
  • C++网络编程之C/S模型
  • 服务器数据恢复—EXT3文件系统下邮件数据被误删的数据恢复案例
  • [网络协议篇] ICMP协议
  • 4-petalinux2018.3 摸索记录 -linux 驱动 (交叉编译)