LeetCode 728. 自除数
自除数 是指可以被它包含的每一位数整除的数。
例如,128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。
自除数 不允许包含 0 。
给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。
示例 1:
输入:left = 1, right = 22
输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
1 <= left <= right <= 104
直接模拟即可:
class Solution {
public:
vector<int> selfDividingNumbers(int left, int right) {
vector<int> ans;
for (int i = left; i <= right; ++i) {
if (isSelfDividingNumber(i)) {
ans.push_back(i);
}
}
return ans;
}
private:
bool isSelfDividingNumber(int num) {
int numBak = num;
while (num) {
int lastDigit = num % 10;
if (!lastDigit) {
return false;
}
if ((numBak % lastDigit) != 0) {
return false;
}
num /= 10;
}
return true;
}
};
如果输入的数字范围是n,每个数字的大小是m,此算法时间复杂度为O(nlgm),空间复杂度为O(1)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2022-02-19 LeetCode 2160. 拆分数位后四位数字的最小和
2020-02-19 剑指offer 学习笔记 数值的整数次方