【刷题日记】728. 自除数

简介: 本次刷题日记的第 20 篇,力扣题为:728. 自除数 ,简单

【刷题日记】728. 自除数

本次刷题日记的第 20 篇,力扣题为:728. 自除数简单

一、题目描述:

image.png

补作业的最后一题,咱们来一个简单轻松的题来结束本次刷题吧,让咱们心情愉悦一点,上班带薪刷题


简单题也并不简单,很多时候看到简单题,我们总会考虑如何使用比较好的技巧来完成一道题的实现,如果没有技巧的话,我们也会使用暴力求解

二、这道题考察了什么思想?你的思路是什么?

我们还是来分析一下这道题是要给我们说些啥,可能乍一看,还会有点没看明白:

  • 我们要明白自除数的定义,例如体重给出的 128 ,他是自除数,是因为他满足 128 对于 1 ,2 ,8 这 3 个数能正常的整除,满足这个条件的数,那就是自除数
  • 有一点一定要注意,自除数,一定要注意不能含 0.也就是说类似于 108,120 这样的数字都是不满足自除数的
  • 题目是给我们一个数据区间,我们需要筛选出这个区间内的自除数

这样看来就比较明确了,知道啥是自除数,题目需要啥,我们就想办法给他就可以了,接下来我们还是来用示例推演一下:

示例:left = 1, right = 22

拿几个数举个例子

image.png

按照上述的例子,我们其实就可以傻瓜式的对于一个数,一位一位的取看是否满足条件,若每一位数都满足条件,那么这个数字就是满足条件的

所以这个时候,我们就只需要去找题目中给出的数字,有多少是满足条件的,抠出来就可以了


三、编码

根据上述逻辑和分析,我们就可以翻译成如下代码,翻译代码的时候,需要注意数字中是否有 0 ,若是有 0 的话,那么这个数直接就不是自除数

编码如下:

// 定义一个 helper 函数,来确认给进来的数是否是自除数
func helper(num int) bool {
    for tmp := num; tmp>0; tmp=tmp/10 {
        // 获取给出数字的每一位,校验是否等于 0 ,等于0 则不符合题意, 还要校验给出的数是否可以整除他的每一位
        if x:=tmp%10; x==0 || num % x !=0{
            return false
        }
    }
    return true
}
func selfDividingNumbers(left int, right int) []int {
    res := make([]int,0)
    // 查看题目给出的列表中,哪些数字是符合条件的
    for i:=left; i<=right; i++ {
        if helper(i) {
            res = append(res,i)
        }
    }
    return res
}

看了上述编码,还是比较清晰的吧,编码的逻辑和推演的逻辑一致,但是我们可以看出来这是比较笨的一种方法,暴力求解,日后有比较好的技巧,我再来分享一波


四、总结:

该题的时间复杂度是 O(nlog right),这个 n 是所给区间的数量,**空间复杂度是 O(1) ,我们只引入了常数级别的空间消耗

原题地址:728. 自除数

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~



相关文章
|
9月前
|
并行计算 监控 Linux
《CST Studio Suite 2024 GPU加速计算指南》
《GPU Computing Guide》是Dassault Systèmes发布的CST Studio Suite 2024的GPU计算指南,涵盖了硬件支持、操作系统支持、许可证、启用方法、NVIDIA和AMD GPU的详细信息及使用指南和故障排除等内容。硬件支持包括NVIDIA和AMD的多种GPU型号,操作系统支持多种版本,许可证通过加速令牌或SimUnit令牌授权。启用方法包括交互式模拟和批处理模式。使用指南和故障排除部分提供了详细的配置和问题解决方法。
572 9
|
存储 供应链 安全
web3.0知识扫盲
web3.0知识扫盲
395 0
|
存储 SQL 缓存
​WEB常见漏洞之逻辑漏洞(基础原理篇)
​WEB常见漏洞之逻辑漏洞(基础原理篇)
851 0
|
存储 安全 API
阿里云APP下载入口和方式
阿里云APP是一款为用户提供安全、稳定、高效的云计算服务的手机应用程序。它具备多种功能,包括文件存储、文件共享、远程控制、备份等等。下面从背景介绍、概览、价值、竞品对比分析、可靠性、创新性、用户反馈和影响力等方面展开扩写。
阿里云APP下载入口和方式
FL Studio21水果电脑编曲软件宿主插件下载及配置要求
电脑编曲软件也就是我们常说的宿主软件,英文简称DAW。 FL Studio俗称水果,是一款开发初衷为了电子音乐制作的宿主软件。内置了非常多优秀的合成器以及效果器插件,极为适合于电子音乐的编排。同时FL Studio支持第三方音源插件导入,这使得FL Studio对除了电子音乐以外更多的音乐风格有了可能性。
949 0
|
弹性计算 负载均衡 小程序
阿里云免费云服务器,新用户免费体验三个月
阿里云免费云服务器,新用户免费体验三个月,阿里云服务器免费试用申请链接入口 ,阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个月,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置
1052 0
|
算法 安全 数据安全/隐私保护
听说这玩意可以安全交换密钥 —— Diffie-Hellman 算法
Diffie-Hellman 密钥交换算法,是由 Whitfield Diffie 和 Martin Hellman 在1976年共同提出的一个奇妙的密钥交换协议。这个算法的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密。(注意:Diffie-Hellman 算法是一种建立密钥的方法,而不是加密方法,只能用于密钥的交换,而不能进行消息的加密和解密)
听说这玩意可以安全交换密钥 —— Diffie-Hellman 算法
|
Java 定位技术 开发工具
Android开发之高德地图实现定位
在应用开发中,地图开发是经常需要使用的“组件”,Google Map虽然有官方教程,无奈用不起来,原因你懂的~~那么国内比较出名的是就是百度地图和高德地图,由于个人喜好,所以选择了高德地图LBS,废话不说,上干货。
2323 1