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

Leetcode 526 Beautiful number

题意

n个数组成排列,排列的下标为i从1开始,并且排列中的每一个数都满足性质,nums[i]能被i整除,或者i被nums[i]整除,求一共有多少个这样的数列

题解

用一个长度为n+1的数组(因为下标从1开始),来记录1-n是否已经选过。用dfs对数列中的每一个位置i搜索如果nums[i]能被i整除,或者i被nums[i]整除。如果最后形成的数列长度为n那么这样的数列就是满足条件的

代码

class Solution {
public:
    int cnt;
    vector<bool> a;
    int countArrangement(int n) {
        a.resize(n+1, false);
        dfs(n, 0);
        return cnt;
    }
    void dfs(int n, int u) {
        if(u == n) {
            cnt++;
            return;
        }
        
        for(int i = n; i >= 1; i--) {
                if(!a[i] && (i % (u+1) == 0 || (u+1) % i == 0)) {
                    a[i] = true;
                    dfs(n, u+1);
                    a[i] = false;
                }
            }
        }
};

时间复杂度 O ( n ! ) O(n!) O(n!)
空间复杂度 O ( n ) O(n) O(n)

http://www.dtcms.com/a/23229.html

相关文章:

  • 用自己的数据训练yolov11目标检测
  • HTTP 响应头信息
  • Selenium+Pytest自动化测试框架实战
  • ad原理图元件透明问题
  • WWW 2025 | 中南、微软提出端到端双重动态推荐模型,释放LLM在序列推荐中的潜力...
  • 开源模型应用落地-LangGraph101-探索 LangGraph 短期记忆
  • 基于YOLO11深度学习的胃肠道息肉智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能
  • Java 基于SpringBoot+Vue 的旅游网站信息化管理系统设计与实现
  • JavaScript的诞生与进化
  • jetson orin nano super AI模型部署之路(一)deepseek r1模型部署
  • 【ProtoBuf】文件编写及序列化
  • C语言实现的常见排序算法
  • AI与大数据:双剑合璧的智能革命
  • 【学习资源】时间序列数据分析方法(2)-mWDN和AutoEncoder
  • 通过BingAPI爬取Bing半个月内壁纸
  • 基于Unity引擎的网络通信架构深度解析——以NetworkConnectionController为例
  • pdf-extract-kit paddle paddleocr pdf2markdown.py(效果不佳)
  • Spring Boot项目开发常见问题及解决方案(上)
  • Java数据结构——Map和Set
  • 【C++项目】Rpc通信框架设计
  • Dest1ny漏洞库: 美团代付微信小程序系统任意文件读取漏洞
  • Linux相关概念和易错知识点(28)(线程控制、Linux下线程的底层)
  • unity学习46:反向动力学IK
  • 《Operating System Concepts》阅读笔记:p17-p25
  • 碰一碰发视频@技术原理与实现开发步骤
  • PaddlePaddle的OCR模型转onnx-转rknn模型_笔记4
  • 字节跳动AI编辑器Trae基本配置教程
  • Web安全|渗透测试|网络安全
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_alloc函数
  • SpringCloud系列教程:微服务的未来(二十四)Direct交换机、Topic交换机、声明队列交换机