zoukankan      html  css  js  c++  java
  • [Algorithm] 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]
    

    Note:

    • The boundaries of each input argument are 1 <= left <= right <= 10000.
    /**
     * @param {number} left
     * @param {number} right
     * @return {number[]}
     */
    var selfDividingNumbers = function(left, right) {
        let result = [];
        let current = left;
        while (current <= right) {
            if (isDividable(current)) {
                result.push(current)
            }
            
            current++;
        }
        
        return result;
    };
    
    function isDividable (num) {
        if (num < 10) {
            return true;
        }
        
        const original = num;
        while (num > 0) {
            const temp = num % 10;
            if (original % temp !== 0) {
                return false;
            }
            num = Math.floor(num / 10);
        }
        
        return true;
    }
    • Time Complexity: O(D), where DD is the number of integers in the range [L, R] and assuming log(R) is bounded. (In general, the complexity would be O(DlogR).)

    • Space Complexity: O(D), the length of the answer.

  • 相关阅读:
    Pythonday01
    PYTHON_DAY2
    PYTHON_DAY3
    数据字典生成SQL语句
    Spring cloud Netflix >readMe
    SecureCRT的安装与激活
    MyBatis映射文件UserMapper.xml(mysql环境)
    数据库模糊查询4种用法
    MyBatis配置文件myBatisconfig.xml
    计算机基础:2进制和2进制算法。
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12092320.html
Copyright © 2011-2022 走看看