| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> LeetCode训练507.完美数 -> 正文阅读 |
|
[数据结构与算法]LeetCode训练507.完美数 |
寒假闲来无事干?不如天天刷刷LeetCode涨涨知识,本来前些日子22考研结束后格外焦虑(我是23考研的),27号晚上看了汤家凤老师直播后,突然发现考研距离我越来越近了,有人说这个寒假就得开始好好准备......emmmm因人而异吧,确实给我整焦虑了,思来想去不如先放松的同时多学学数据结构,不管考哪个学校反正数据结构是肯定要学的!下面进入正题! 不知道为什么LeetCode题库出现的第一道题不是第1题而是这道507题,标记为简单,但是只有48%的通过率,点进去以后读完题,评论区的解法没把我笑死,然后看了一下解析,这居然是一种正确解法红红火火恍恍惚惚或或!!! 507.完美数对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。 给定一个 整数 n, 如果是完美数,返回 true,否则返回 false 示例 1:输入:num = 28 示例 2:输入:num = 6 示例 3:输入:num = 496 示例 4:输入:num = 8128 示例 5:输入:num = 2 提示:1 <= num <= 来源:力扣(LeetCode) 分析对于输入的整数n,我们可以用枚举法找到他的所有 正因子 ,并累加在一个变量sum中,只需要最后判断sum是否等于n,即可判断输入的整数n是否为完美数,我们只需要枚举不超过的整数即可,因为对于每一个小于的正因子,他一定与一个大于的因子相乘才会等于n,在筛选过程中需要注意: 1、对于整数1,因为完美数定义在相加的因子中要排除自身,所以1不是完美数,需要单独处理 2、因为要排除自身,所以除了1之外的每一个整数都有一个单独的正因子1 3、当n为平方数时,其平方根也是一个单独的正因子,在计算时因避免重复加该值
?代码时间复杂度为,空间复杂度为 先前提到评论区的解法格外搞笑,但最后发现,原因居然是因为题目范围内的完美数只有 6, 28, 496, 8128, 33550336 这5个,故完全可以通过判断输入的整数n是否为这5个数字来解决
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 18:31:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |