每日OJ题_DFS爆搜深搜回溯剪枝②_力扣526. 优美的排列

目录

力扣526. 优美的排列

解析代码


力扣526. 优美的排列

526. 优美的排列

难度 中等

假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 :

  • perm[i] 能够被 i 整除
  • i 能够被 perm[i] 整除

给你一个整数 n ,返回可以构造的 优美排列 的 数量 。

示例 1:

输入:n = 2
输出:2
解释:
第 1 个优美的排列是 [1,2]:- perm[1] = 1 能被 i = 1 整除- perm[2] = 2 能被 i = 2 整除
第 2 个优美的排列是 [2,1]:- perm[1] = 2 能被 i = 1 整除- i = 2 能被 perm[2] = 1 整除

示例 2:

输入:n = 1
输出:1

提示:

  • 1 <= n <= 15
class Solution {
public:int countArrangement(int n) {}
};

解析代码

       题意是在每一个位置上考虑所有的可能情况并且不能出现重复。所以可以通过深度优先搜索的方式,不断地枚举每个数在当前位置的可能性,并回溯到上一个状态,直到枚举完所有可能性,得到正确的结果。

        需要定义一个变量用来记录所有可能的排列数量,一个一维数组 visited 标记元素,然后从第一个位置开始进行递归。递归函数作用:在当前位置填入一个合理的数字,查找所有满足条件的排列。

class Solution {bool vis[16];int ret;public:int countArrangement(int n) {dfs(1, n);return ret;}void dfs(int pos, int n){if(pos == n + 1) // 下标从1到n{++ret;return;}for(int i = 1; i <= n; ++i){if(!vis[i] && (pos % i == 0 || i % pos == 0)){vis[i] = true;dfs(pos + 1, n);vis[i] = false;}}}
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人如何首次申请专利(详细教程)

环境&#xff1a; win10 专业版 问题描述&#xff1a; 自然人如何首次申请专利&#xff08;详细教程&#xff09; 解决方案&#xff1a; 先提前在国家知识产权局检索查询一下&#xff0c;有没和你要申请专利相关的已经公布的专利&#xff0c;有的话就申请成功机会就比较小 …

安卓手机APP开发_媒体开发部分__保持设备处于唤醒状态

安卓手机APP开发_媒体开发部分__保持设备处于唤醒状态 目录 概述 使用唤醒锁的用法 保持屏幕在亮着 电视的环境模式 保持CPU处于运行状态 概述 为了避免多消耗电池电量,安卓设备会很快进入休眠状态.然而,也是需要保持它一直 处于唤醒的状态,来完成某些工作. 你使用的方…

Agent AI智能体的未来杂谈

Agent AI智能体的未来杂谈 随着AI智能体&#xff0c;特别是Agent AI技术的飞速发展和智能化程度不断提升&#xff0c;其在未来社会中的地位和作用愈发凸显&#xff0c;并将在多个维度深刻影响我们的生活和工作。 首先&#xff0c;在角色定位方面&#xff0c;AI智能体将从单一…

电脑使用笔记

1.电脑亮度调节 亮度&#xff1a;50 对比度&#xff1a;45 暗部平衡&#xff1a;40

mysql分组排序

具体需求为&#xff1a;mysql有一个表model_cluster_info, 字段包括id, city_code, household等&#xff0c;现要求按city_code分组并排序&#xff0c;返回在相同city_code下households特定排名的记录&#xff08;如60%&#xff09; mysql5.7&#xff0c;我用用户自定义变量实…

tomcat部署

1.客户端和服务器端的交互过程 客户端发送请求给服务器 由服务器中的服务器软件拦截请求 根据请求调动相应的Java业务逻辑执行相关的处理 我们前面知道Java代码的运行势必提前将其装载在JVM上 而服务器软件一般都是由Java代码编写 所以两者都要装载在JVM上 而Java业务逻辑装载…

OpenVoice——强大的语音克隆与生成技术

OpenVoice 是一款由 MyShell TTS 开发的令人惊叹的技术。它只需一小段参考发言者的音频片段&#xff0c;就能精确复制其声音&#xff0c;并能够生成多种语言的语音。 其主要功能包括准确的音色克隆&#xff0c;能够精确地克隆参考音色&#xff0c;并在多种语言和口音中生成语音…

OMG 一个方法的调用改动居然优化了一倍性能!!! ConcurrentHashMap.computeIfAbsent 学习

背景 前提&#xff1a;抖音小程序有qps的监控&#xff0c;如果说qps过低就会导致小程序被下架掉。 业务代码非常的简单 一个easy的查询 但是当并非达到 20就 会发现qps降低了10倍 业务需求实现大概这么一个链路 ok 那么此前我们在认识一下 computeIfAbsent 方法&#xff08;大…

38 线程互斥

目录 1.问题 2.互斥相关概念 3.互斥量 4.互斥量接口 5.修改买票代码 6.互斥量原理 7.锁的封装 8.可重入和线程安全 1. 问题 用一个模拟抢票过程的程序引出本节话题&#xff0c;如果有1000张票&#xff0c;设为全局变量&#xff0c;生成3个线程每隔一秒抢一张票&#xff0c;如…

快速搭建 Web自动化测试框架

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在程序员的世界中&#xff0c;一切重复性的工作&#xff0c;都应该通过程序自动执行。「自动化测…

美国站群服务器常见的操作系统选项

美国站群服务器常见的操作系统选项 美国站群服务器是一种灵活且可扩展的服务器解决方案&#xff0c;可以用于托管和管理多个网站和应用程序。在选择合适的美国站群服务器时&#xff0c;一个重要的考虑因素是其支持的操作系统。本文将介绍美国站群服务器常见的操作系统选项&…

第十五届蓝桥杯省赛第二场C/C++B组H题【质数变革】题解

解题思路 首先&#xff0c;我们考虑一下整个数组都是由质数构成的情况。 当我们要将质数 x x x 向后移 k k k 个时&#xff0c;如果我们可以知道质数 x x x 在质数数组的下标 j j j&#xff0c;那么就可以通过 p r i m e s [ j k ] primes[j k] primes[jk] 来获取向后…

C语言实验-函数与模块化程序设计

一&#xff1a; 编写函数fun&#xff0c;其功能是&#xff1a;输入一个正整数&#xff0c;将其每一位上为偶数的数取出重新构成一个新数并输出。主函数负责输入输出&#xff0c;如输入87653142&#xff0c;则输出8642。&#xff08;main函数->fun函数&#xff09; #define _…

前端科举八股文-HTML篇

前端面试-HTML篇 什么是http?http和https有什么区别https的加密过程?http2.0有什么改进?src和href的区别对html语义化标签的理解?script标签中defer和asyc的区别?举出几个常见的行内、块级元素什么是webworker&#xff1f;iframe的优缺点&#xff1f;介绍一下tcp三次握手f…

python中的进程间通信

进程间数据是否共享 在Python中&#xff0c;进程之间默认是不共享内存的。每个进程都有自己独立的内存空间&#xff0c;这意味着在一个进程中对数据的修改不会影响到另一个进程中的同名数据。然而&#xff0c;Python提供了几种方式来实现进程间的数据共享&#xff1a; 使用 mu…

.NET 解决Linux下Couldn‘t find a valid ICU package installed on the system异常的问题

最近使用.NET发布独立的Linux x64程序&#xff0c;在CentOS7.9的最小化安装系统上运行&#xff0c;结果运行不了&#xff0c;启动就报异常“Process terminated. Couldnt find a valid ICU package installed on the system. Please install libicu (or icu-libs) using your p…

3D,kd-tree算法原理

作为三维领域中一个重要的数据来源,点云主要是表征目标表面的海量点的集合,并不具备传统网格数据的几何拓扑信息,所以点云数据处理中最为核心的问题就是建立离散点间的拓扑关系,实现基于邻域关系的快速查找。 几何拓扑是计算几何学中的一个重要概念,指的是描述几何形状的空…

周三多《管理学原理》第3版/考研真题/章节练习题

普通高等教育“十一五”国家级规划教材《管理学原理》&#xff08;第3版&#xff0c;周三多、陈传明、龙静编著&#xff0c;南京大学出版社&#xff09;是我国高校广泛采用的管理学权威教材之一&#xff0c;也被众多高校&#xff08;包括科研机构&#xff09;指定为考研考博专业…

深度解析 Spring 源码:从BeanDefinition源码探索Bean的本质

文章目录 一、BeanDefinition 的概述1.1 BeanDefinition 的定位1.2 BeanDefition 的作用 二、BeanDefinition 源码解读2.1 BeanDefinition 接口的主要方法2.2 BeanDefinition 的实现类2.2.1 实现类的区别2.2.2 setBeanClassName()2.2.3 getDependsOn()2.2.4 setScope() 2.3 Bea…

触摸屏幕MSR BMS-2000维修三井主机遥控MITSUI EMS-200船舶电脑远程控制系统船用柴油主机遥控装置BMS-2000IIEMS-200II

远程控制系统 船用柴油主机遥控装置BMS-2000II&EMS-200II 该船用柴油机远程控制系统继承了已交付500多套的BMS-2000的理念&#xff0c;集成了新的电子技术。 曾为BMS-2000赢得好评的液晶显示屏进行了更新&#xff0c;并在W/H和C/R上作为标准安装。此外&#xff0c;备用控制…