[LeetCode] 2 Keys Keyboard

650. 2 Keys Keyboard

There is only one character ‘A’ on the screen of a notepad. You can perform one of two operations on this notepad for each step:

  • Copy All: You can copy all the characters present on the screen (a partial copy is not allowed).
  • Paste: You can paste the characters which are copied last time.

Given an integer n, return the minimum number of operations to get the character ‘A’ exactly n times on the screen.

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public:
int minSteps(int n) {
vector<int> dp(n + 1, 987654321);
dp[1] = 0;
for(int i = 1; i < n; i++) {
for(int j = i + i; j <= n; j += i) {
dp[j] = min(dp[j], dp[i] + j / i);
}
}
return dp[n];
}
};
Author: Song Hayoung
Link: https://songhayoung.github.io/2022/04/30/PS/LeetCode/2-keys-keyboard/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.