第 326 场周赛
Date: 2023-01-01
A 统计能整除数字的位数
使用 to_string
转换为字符串,方便遍历
复杂度分析
- 时间复杂度:\(O(C)\)
- 空间复杂度:\(O(1)\)
B 数组乘积中的不同质因数数目
对于每个数字分别计算质因数即可,用 set 来计数
复杂度分析
- 时间复杂度:\(O(n\sqrt m)\),其中 \(m\) 是数字大小
- 空间复杂度:\(O(m)\)
C 将字符串分割成值不超过 K 的子字符串
动态规划
复杂度分析
- 时间复杂度:\(O(10n)\)
- 空间复杂度:\(O(n)\)
D 范围内最接近的两个质数
质数筛模版题,注意 1 不是质数
class Solution {
public:
vector<int> closestPrimes(int left, int right) {
int n = right;
vector<int> v(n + 1), p(n + 1);
int m = 0, res = INT_MAX, x = 0, y = 0, last = -1;
for (int i = 2; i <= n; i++) {
if (v[i] == 0) {
p[++m] = i;
if (i >= left) {
if (last != -1) {
if (i - last < res) {
res = i - last;
x = last, y = i;
}
}
last = i;
}
}
for (int j = 1; j <= m; j++) {
if (p[j] > n / i) break;
v[p[j] * i] = 1;
if (i % p[j] == 0) break;
}
}
if (res == INT_MAX) return {-1, -1};
else return {x, y};
}
};
复杂度分析
- 时间复杂度:\(O(n)\)
- 空间复杂度:\(O(n)\)
本文访问 次