前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【leetcode刷题】T211-自除数

【leetcode刷题】T211-自除数

作者头像
木又AI帮
发布2019-12-23 17:22:29
3280
发布2019-12-23 17:22:29
举报
文章被收录于专栏:木又AI帮

木又连续日更第86天(86/100)


木又的第211篇leetcode解题报告

数学类型第27篇解题报告

leetcode第728题:自除数

https://leetcode-cn.com/problems/self-dividing-numbers/


【题目】

自除数 是指可以被它包含的每一位数除尽的数。

例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。

还有,自除数不允许包含 0 。

给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。

代码语言:javascript
复制
示例 1:
输入: 
上边界left = 1, 下边界right = 22
输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]

注意: 每个输入参数的边界满足 1 <= left <= right <= 10000。

【思路】

本题好像只有暴力解法,判断left到right的数,哪些可以被其所有的余数整除。

【代码】

python版本

代码语言:javascript
复制
class Solution(object):
    def selfDividingNumbers(self, left, right):
        """
        :type left: int
        :type right: int
        :rtype: List[int]
        """
        # 特殊情况
        ls = list(range(0, 10))
        if 0 < left <= right < 10:
            return ls[left: right+1]

        if left >= 10:
            ls = []
        else:
            ls = ls[left:]

        for i in range(max(11, left), right+1):
            tmp = i
            while tmp > 0:
                tmp2 = tmp % 10
                if tmp2 == 0 or i % tmp2 != 0:
                    break
                tmp /= 10
            if tmp == 0:
                ls.append(i)
        return ls
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档