Algorithm
lc650_只有两个键的键盘
动态规划,按照所有的因数来递归分解, 还可以分解质因数
详细题解见下面的链接
链接:https://leetcode-cn.com/problems/2-keys-keyboard/solution/zhi-you-liang-ge-jian-de-jian-pan-by-lee-ussa/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 动态规划,按照所有的因数来递归分解
class Solution {
public:
int minSteps(int n) {
vector<int> f(n + 1);
for (int i = 2; i <= n; ++i) {
f[i] = INT_MAX;
for (int j = 1; j * j <= i; ++j) {
if (i % j == 0) {
f[i] = min(f[i], f[j] + i / j);
f[i] = min(f[i], f[i / j] + j);
}
}
}
return f[n];
}
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 还可以分解质因数
class Solution {
public:
int minSteps(int n) {
int ans = 0;
for (int i = 2; i * i <= n; ++i) {
while (n % i == 0) {
n /= i;
ans += i;
}
}
if (n > 1) {
ans += n;
}
return ans;
}
};
|
Review
【TED演讲】人性、名誉和爱情的思考
学会爱他人,爱万物,爱和怜悯
Tips
让事件飞 ——Linux eventfd 原理与实践
Share
批量生成指定大小的文件