651. 4 Keys Keyboard
来源:互联网 发布:什么是核函数 知乎 编辑:程序博客网 时间:2024/06/06 02:58
Imagine you have a special keyboard with the following keys:
Key 1: (A)
: Prints 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 = 3Output: 3Explanation: We can at most get 3 A's on screen by pressing following key sequence:A, A, A
Example 2:
Input: N = 7Output: 9Explanation: 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.
思路:刚开始BFS,TLE,是用DP无疑,但是最后还是要看答案啊。。。。
感觉老是差一截。。。。
多写写前几个DP数组的值,多思考思考dp[n]与之前的dp[0..n-1]之间的关系
ref:http://www.geeksforgeeks.org/how-to-print-maximum-number-of-a-using-given-four-keys/
/* * DP * 最重要是多写前几个DP的值发现规律 */public class Solution { public int maxA(int n) { if(n <= 6)return n; // 多写几个发现下规律嘛 // dp[i]表示i次可以得到的最大的A,所以第i次肯定不是复制,因为那还不如按个A int[] dp = new int[1+n]; for(int i=1; i<=6; i++)dp[i]=i; // dp[n]怎么由之前的求出来呢? // 可以是dp[0..n-1]中的一直按A或者Ctrl_V而来的 for(int i=7; i<=n; i++) { dp[i] = dp[i-1] + 1; for(int j=i-3; j>0; j--) { dp[i] = Math.max(dp[i], dp[j]*(i-j-1)); } } return dp[n]; }}
阅读全文
0 0
- 651. 4 Keys Keyboard
- 651. 4 Keys Keyboard
- leetcode 651. 4 Keys Keyboard
- [leetcode]651. 4 Keys Keyboard
- 动态规划中级教程 651. 4 Keys Keyboard
- Keyboard Keys
- GLFW Keyboard keys
- 650. 2 Keys Keyboard
- 650. 2 Keys Keyboard
- 650. 2 Keys Keyboard
- 650. 2 Keys Keyboard
- 650. 2 Keys Keyboard
- 650. 2 Keys Keyboard
- LeetCode-2 Keys Keyboard
- LeetCode650. 2 Keys Keyboard
- LeetCode:2 Keys Keyboard
- LeetCode650. 2 Keys Keyboard
- 650. 2 Keys Keyboard
- Tornado开源
- 通过物理机dhcp配置虚拟机网络(wifi上网)
- 55个基础金融名词
- L
- Android自动化测试之——UI Automator
- 651. 4 Keys Keyboard
- bzoj4956: I
- 第六章 基本图形
- 剑指Offer面试题41和为s的两个数字与和为s的连续正数序列,面试题42翻转单词顺序与左旋转字符串
- TPshop学习(8)微信支付
- js JSON
- 八大排序算法总结与java实现
- 【WEB】Vue2.0音乐APP实战中的知识点总结(四)
- 寻找最大数(二)