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

C++刷题 全排列问题

C++刷题 全排列问题

  • 题目描述
  • 思路讲解
  • 代码展示

题目描述

在这里插入图片描述

思路讲解

在这里插入图片描述

代码展示

#include <iostream>using namespace std;const int maxn = 11;//P为当前排列,hashTable记录整数x是否已经在P中
int n, P[maxn], hashTable[maxn] = {false};//当前处理排列的第index号位
void generateP(int index) {if (index == n + 1) { //递归边界,已经处理完排列的i~n位for (int i = 1; i <= n; i++) {printf("%d", P[i]); //输出当前排列}printf("\n");return;}for (int x = 1; x <= n; x++) { //枚举1~n,试图将x填入P[index]if (hashTable[x] == false) { //如果x不在P[0]~P[index - 1]中P[index] = x; //令P的第index位为x,即把x加入当前排列hashTable[x] = true; //记x已在P中generateP(index + 1); //处理排列的第index + 1号位hashTable[x] = false; // 已处理完P[index]为x的子问题,还原状态}}
}int main() {n = 3;  //欲输出1~3的全排列generateP(1); //从P[1]开始return 0;
}
http://www.lryc.cn/news/176510.html

相关文章:

  • 求数列a+aa+aaa+aaaa+......前n项和,a和n均由输入获得。
  • ElementUI之首页导航+左侧菜单->mockjs,总线
  • 文心大模型写TodoList项目需求
  • 使用applescript自动化trilium的数学公式环境(二)
  • 机器学习与数据挖掘第三、四周
  • 黎明加水印微信小程序源码 支持流量主接入
  • 22 Python的argparse模块
  • Unity之NetCode多人网络游戏联机对战教程(3)--NetworkObject组件讲解
  • 正点原子lwIP学习笔记——Socket接口UDP实验
  • 连接组学中的机器学习:从表征学习到模型拟合
  • 数据结构-----二叉树的创建和遍历
  • 【算法题】1333. 餐厅过滤器
  • linux脚本笔记
  • 目标检测YOLO实战应用案例100讲-面向路边停车场景的目标检测(中)
  • [论文笔记]Prefix Tuning
  • electron快速入门
  • C语言的stdio.h的介绍
  • 使用香橙派 在Linux环境中安装并学习Python
  • 如何开发物联网 APP?
  • 配置pytorchGPU虚拟环境-python3.7
  • Logic Pro X10.7.9(mac乐曲制作软件)
  • 第一部分:HTML5
  • Linux 基础入门
  • 【数据结构】插入排序:直接插入排序、折半插入排序、希尔排序的学习知识总结
  • Magic Battery for Mac:让你的设备电量管理变得轻松简单
  • nodejs+vue大学食堂订餐系统elementui
  • nat综合实验
  • 【iOS逆向与安全】好用的一套 TCP 类
  • Ubuntu Kafka开机自启动服务
  • c#实现单例模式的两种方法(饿汉式、懒汉式)