LeetCode 4 Keys Keyboard
2017-09-22 15:27
375 查看
原题链接在这里:https://leetcode.com/problems/4-keys-keyboard/description/
题目:
Imagine you have a special keyboard with the following keys:
Now, you can only press the keyboard for N times (with the above four keys), find out the maximum numbers of 'A' you can print on screen.
Example 1:
Example 2:
Note:
1 <= N <= 50
Answers will be in the range of 32-bit signed integer.
题解:
DP问题.
初始化, dp[i] = i. i在[1,N]就是直接输入'A'.
状态转移, dp[i] = Math.max(dp[i], (i-j-1)*dp[j]), j在[1,i-3]区间内. Ctrl A, Ctrl C, Ctrl V用了3个操作,所以j是到i-3. 本来已经有了d[j]个'A', 三个操作做完又加了dp[j]个'A', 还剩下i-3-j个操作,剩下的每一次都加dp[j]个'A'. 总共dp[j] + dp[j] + (i-3-j)*dp[j] = (i-j-1)*dp[j].
答案dp
.
Time Complexity: O(N^2).
Space: O(N).
AC Java:
类似2 Keys Keyboard.
题目:
Imagine you have a special keyboard with the following keys:
Key 1: (A): Print one 'A' on screen.
Key 2: (Ctrl-A): Select the whole screen.
Key 3: (Ctrl-C): Copy selection to buffer.
Key 4: (Ctrl-V): Print buffer on screen appending it after what has already been printed.
Now, you can only press the keyboard for N times (with the above four keys), find out the maximum numbers of 'A' you can print on screen.
Example 1:
Input: N = 3 Output: 3 Explanation: We can at most get 3 A's on screen by pressing following key sequence: A, A, A
Example 2:
Input: N = 7 Output: 9 Explanation: We can at most get 9 A's on screen by pressing following key sequence: A, A, A, Ctrl A, Ctrl C, Ctrl V, Ctrl V
Note:
1 <= N <= 50
Answers will be in the range of 32-bit signed integer.
题解:
DP问题.
初始化, dp[i] = i. i在[1,N]就是直接输入'A'.
状态转移, dp[i] = Math.max(dp[i], (i-j-1)*dp[j]), j在[1,i-3]区间内. Ctrl A, Ctrl C, Ctrl V用了3个操作,所以j是到i-3. 本来已经有了d[j]个'A', 三个操作做完又加了dp[j]个'A', 还剩下i-3-j个操作,剩下的每一次都加dp[j]个'A'. 总共dp[j] + dp[j] + (i-3-j)*dp[j] = (i-j-1)*dp[j].
答案dp
.
Time Complexity: O(N^2).
Space: O(N).
AC Java:
1 class Solution { 2 public int maxA(int N) { 3 int [] dp = new int[N+1]; 4 for(int i = 1; i<=N; i++){ 5 dp[i] = i; 6 for(int j = 1; j<=i-3; j++){ 7 dp[i] = Math.max(dp[i], (i-j-1)*dp[j]); 8 } 9 } 10 return dp ; 11 } 12 }
类似2 Keys Keyboard.
相关文章推荐
- [LeetCode] 650. 2 Keys Keyboard
- leetcode 650. 2 Keys Keyboard
- Leetcode 650. 2 Keys Keyboard
- [LeetCode] 2 Keys Keyboard
- LeetCode - 650 - 2 Keys Keyboard
- [leetcode]651. 4 Keys Keyboard
- LeetCode:2 Keys Keyboard
- LeetCode650. 2 Keys Keyboard
- leetcode 650. 2 Keys Keyboard
- LeetCode 650. 2 Keys Keyboard
- Leetcode 650. 2 Keys Keyboard
- leetcode650 2 Keys Keyboard
- Leetcode: 650. 2 Keys Keyboard
- Leetcode刷题总结:650. 2 Keys Keyboard
- [LeetCode] 4 Keys Keyboard 四键的键盘
- Leetcode 650. 2 Keys Keyboard[medium]
- LeetCode 650 2 Keys Keyboard - LeetCode Weekly Contest 43
- LeetCode 650. 2 Keys Keyboard--动态规划
- 【精】leetcode - 650. 2 Keys Keyboard 【动态规划 + 质数 & 非质数 + 简洁表达】
- leetcode_650. 2 Keys Keyboard