当前位置: 首页 > 工具软件 > diving > 使用案例 >

Leetcode 728: Self Diving Numbers

干亮
2023-12-01

问题描述:
Self Diving Numbers 被定义为:这个数可以被它的每一位整除。若某一位是0,则它不是Self Diving Numbers
找出一定范围内所有的这种数

思路:
这种用求余法对一个整数逐位拆解的算法练习的比较多了,所以直接上代码

class Solution {
    public List<Integer> selfDividingNumbers(int left, int right) {
        List<Integer> list=new ArrayList<>();
        for(int i=left; i<=right; i++){
            if(isSelfDiving(i))  list.add(i);
        }
        return list;
    }
    
    private boolean isSelfDiving(int n){
        int original=n;
        while(n>0){
            int cur=n%10;
            if((cur==0)||((original%cur)!=0))  return false;
            n=n/10;
        }
        return true;
    }
}

时间复杂度:近似认为isSelfDiving可以在常数时间内O(1)完成,所以整体的时间复杂度为O(right-left)

 类似资料:

相关阅读

相关文章

相关问答