LeetCode2999.统计强大整数的数目
作者:
Doug_Lea
,
2025-04-10 19:19:12
· 江苏
,
所有人可见
,
阅读 2
- 暴力的使用深度优先搜索(超时)
- 动态规划
class Solution {
public long numberOfPowerfulInt(long start, long finish, int limit, String s) {
long end = Integer.parseInt(s);
if (end > finish)
return 0;
for (int i = 0; i < s.length(); i++) {
if (Integer.parseInt(String.valueOf(s.charAt(i))) > limit) {
return 0;
}
}
dfs(start, finish, limit, s);
return list.size();
}
private List<Integer> list = new ArrayList();
private void dfs(long start, long finish, int limit, String str) {
if (Long.parseLong(str) > finish || str.length() > Long.toString(finish).length())
return;
else if (Integer.parseInt(str) >= start && !list.contains(Integer.parseInt(str))) {
list.add(Integer.parseInt(str));
}
for (int i = 0; i <= limit; i++) {
String c = Integer.toString(i);
str = c + str;
if (Long.parseLong(str) <= finish) {
dfs(start, finish, limit, str);
str = str.substring(1);
} else {
return;
}
}
}
}