650. 只有两个键的键盘
难度中等357
最初记事本上只有一个字符 'A' 。你每次可以对这个记事本进行两种操作:
Copy All(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴):粘贴 上一次 复制的字符。
给你一个数字 n ,你需要使用最少的操作次数,在记事本上输出 恰好 n 个 'A' 。返回能够打印出 n 个 'A' 的最少操作次数。
示例 1:
1 | 输入:3 |
示例 2:
1 | 输入:n = 1 |
提示:
1 <= n <= 1000
分解质因数
找到一个数字x如果当前的数字n能被x整除,那么需要复制几次x
例如:n = 8, x =2, 计算过程为:
| n | x | ans |
|---|---|---|
| 4 | 2 | 2 |
| 2 | 2 | 4 |
| 1 | 2 | 6 |
1 | class Solution { |
动态规划
设 $f[i]$ 表示打印出 $i $个 $\text{A}$ 的最少操作次数。
1 | class Solution { |