728. Self Dividing Numbers

Difficulty:
Related Topics:
Similar Questions:

Problem

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

A self-dividing number is not allowed to contain the digit zero.

Given two integers left and right, return **a list of all the *self-dividing numbers* in the range** [left, right].

  Example 1:

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

Example 2:

Input: left = 47, right = 85
Output: [48,55,66,77]

  Constraints:

Solution (Java)

class Solution {
    public List<Integer> selfDividingNumbers(final int left, final int right) {
        final List<Integer> list = new ArrayList<>();
        for (int i = left; i <= right; i++) {
            if (isSelfDividing(i)) {
                list.add(i);
            }
        }
        return list;
    }

    private boolean isSelfDividing(int value) {
        final int origin = value;
        while (value != 0) {
            final int digit = value % 10;
            value /= 10;
            if (digit == 0 || origin % digit != 0) {
                return false;
            }
        }
        return true;
    }
}

Explain:

nope.

Complexity: