題目地址:
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;
}
}
時間複雜度,空間。