zoukankan      html  css  js  c++  java
  • 728. Self Dividing Numbers可以自己除以自己的数字

    [抄题]:

    self-dividing number is a number that is divisible by every digit it contains.

    For example, 128 is a self-dividing number because 128 % 1 == 0128 % 2 == 0, and 128 % 8 == 0.

    Also, a self-dividing number is not allowed to contain the digit zero.

    Given a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.

    Example 1:

    Input: 
    left = 1, right = 22
    Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

    不知道怎么取出数字中的每一位数:mod%取,然后每次除10就可以了

    [一句话思路]:

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    1. 有数字不变的要求:原来的数要固定住,才能自己除以自己

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

    不知道怎么取出数字中的每一位数:mod%取余,然后每次除10就可以了

    [复杂度]:Time complexity: O(n) Space complexity: O(n)

    [英文数据结构或算法,为什么不用别的数据结构或算法]:

    取余、除10,很方便

    [关键模板化代码]:

    [其他解法]:

    [Follow Up]:

    [LC给出的题目变变变]:

     [代码风格] :

    class Solution {
        public List<Integer> selfDividingNumbers(int left, int right) {
            List<Integer> res = new LinkedList<Integer>();
            
            for (int i = left; i <= right; i++) {
                if (isSelfDividingNumbers(i)) res.add(i);
            }
            
            return res;
        }
        
        public boolean isSelfDividingNumbers(int n) {
            int original = n;
            while (n != 0) {
                int res = n % 10;
                if (n % 10 == 0) return false;
                if (original % res != 0) return false;
                n /= 10;
            }
            
            return true;
        }
    }
    View Code
  • 相关阅读:
    Linux文件和目录
    Android/ios手机销售榜
    项目开发流程
    游戏签到系统测试点
    项目上线后出现问题,该如何解决?
    公交地铁出行测试点
    初学测试
    测试用例的优先级
    Django的MVT模式与MVC模式
    JWT安装配置
  • 原文地址:https://www.cnblogs.com/immiao0319/p/8983763.html
Copyright © 2011-2022 走看看