题目地址:
https://leetcode.com/problems/self-dividing-numbers/
给定一个正整数区间范围,挑出所有能被其各个位上的数整除的数字(不允许其中某一位为)。直接逐个判断即可。代码如下:
import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<Integer> selfDividingNumbers(int left, int right) {
List<Integer> res = new ArrayList<>();
for (int i = left; i <= right; i++) {
if (isValid(i)) {
res.add(i);
}
}
return res;
}
private boolean isValid(int n) {
int m = n;
while (m != 0) {
// 取出个位数
int k = m % 10;
// 如果是0或者不能整除则返回false
if (k == 0 || n % k != 0) {
return false;
}
m /= 10;
}
return true;
}
}
时间复杂度,空间。