力扣(LeetCode)728. 自除数

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

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

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

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

示例 1:

输入:
上边界left = 1, 下边界right = 22
输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
注意:

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

思路 使用String.valueOf(int).contains("0") 来判断数字是否0

或者在获取数字每一位的时候进行数字0的判断

Java版

class Solution {
    public List<Integer> selfDividingNumbers(int left, int right) {
        List<Integer> list = new LinkedList<>();
        for(int i=left;i<=right;i++) {
            if(!String.valueOf(i).contains("0")) {//数字不包含0
                int temp = i;
                boolean flag = true;
                while(temp>0 && flag) {
                    int num = temp % 10;
                    if(i%num==0) {
                        temp = temp/10;
                    }else {
                       flag = false;
                    }
                }
                if(flag) {
                    list.add(i);
                }
            }
        }
        return list;

    }
}
class Solution {
    public List<Integer> selfDividingNumbers(int left, int right) {
        List<Integer> list = new LinkedList<>();
        for(int i=left;i<=right;i++) {
                int temp = i;
                boolean flag = true;
                while(temp>0 && flag) {
                    int num = temp % 10;
                    if(num==0) {//数字包含数字0
                        flag=false;
                    }else if(i%num==0) {//该位数字可被除尽
                        temp = temp/10;
                    }else {//该位数字不可被除尽
                       flag = false;
                    }
                }
                if(flag) {
                    list.add(i);
                }
        }
        return list;

    }
}

运行结果

原文地址:https://www.cnblogs.com/lick468/p/10668910.html

时间: 2024-10-12 01:33:11

力扣(LeetCode)728. 自除数的相关文章

力扣LeetCode,两个数组的交集 II

1.给定两个数组,编写一个函数来计算它们的交集. 示例 1: 1 输入: nums1 = [1,2,2,1], nums2 = [2,2] 2 输出: [2,2] 示例 2: 1 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 2 输出: [4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致. 我们可以不考虑输出结果的顺序. 进阶: 如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums2 小很多

LeetCode 5097. 力扣排行榜

地址 https://www.acwing.com/solution/LeetCode/content/5765/ 题目描述新一轮的「力扣杯」编程大赛即将启动,为了动态显示参赛者的得分数据,需要设计一个排行榜 Leaderboard. 请你帮忙来设计这个 Leaderboard 类,使得它有如下 3 个函数: addScore(playerId, score):假如参赛者已经在排行榜上,就给他的当前得分增加 score 点分值并更新排行.假如该参赛者不在排行榜上,就把他添加到榜单上,并且将分数设

LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现

题目描述: python实现 Search in Rotated Sorted Array 搜索旋转排序数组   中文:假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 . 你可以假设数组中不存在重复的元素. 你的算法时间复杂度必须是 O(log n) 级别. 英文:Suppose an array sorted i

力扣sql题

组合两个表 表1: Person +-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId 是上表主键表2: Address +-------------+---------+| 列名 | 类型 |+-------------+-------

[力扣]144_二叉树的前序遍历

/* 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. */ 方法一:常规递归方式,用C语言实现(根左右) 代码实现: /** * Note

力扣——分糖果 II

排排坐,分糖果. 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友. 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果. 然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果. 重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到我们分完所有的糖果.注意,就算我们手中的剩下糖果数不

力扣——二叉树的层平均值

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例 1: 输入:    3   / \  9  20    /  \   15   7输出: [3, 14.5, 11]解释:第0层的平均值是 3,  第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11]. 注意: 节点值的范围在32位有符号整数范围内. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-

力扣 | 242. 有效的字母异位词

题目: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram"输出: true示例 2: 输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-anagram

力扣leetcod 175:组合两个表

175:组合两个表 题: 表1: Person +-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId 是上表主键表2: Address +-------------+---------+| 列名 | 类型 |+-------------+

回溯算法详解[力扣46:全排列]

解决一个回溯问题,实际上就是一个决策树的遍历过程.你只需要思考 3 个问题: 1.路径:也就是已经做出的选择. 2.选择列表:也就是你当前可以做的选择. 3.结束条件:也就是到达决策树底层,无法再做选择的条件. 如果你不理解这三个词语的解释,没关系,我们后面会用「全排列」和「N 皇后问题」这两个经典的回溯算法问题来帮你理解这些词语是什么意思,现在你先留着印象. 代码方面,回溯算法的框架: result = [] def backtrack(路径, 选择列表): if 满足结束条件: result