当前位置: 首页 > 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)

相关文章:

  • 用自己的数据训练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通信框架设计
  • 四川省政府党组成员、副省长、省公安厅厅长叶寒冰接受审查调查
  • 王毅谈中阿巴三方外长会晤成果
  • 12年政企同心共织民生保障网——上海国寿与嘉定区政府创新民生综合保险项目
  • 我国成功发射中星3B卫星
  • 西岸大剧院夏秋演出季公布,阿云嘎制作《风声》9月驻演
  • 购房成本再降低!今年首次降息落地,30年期百万房贷月供将减少54元