动态规划-650. 2 Keys Keyboard
来源:互联网 发布:陕西省大数据集团副总 编辑:程序博客网 时间:2024/06/11 09:24
题目
Initially on a notepad only one character 'A' is present. You can perform two operations on this notepad for each step:
Copy All
: You can copy all the characters present on the notepad (partial copy is not allowed).Paste
: You can paste the characters which are copied last time.
Given a number n
. You have to get exactly n
'A' on the notepad by performing the minimum number of steps permitted. Output the minimum number of steps to get n
'A'.
Example 1:
Input: 3Output: 3Explanation:Intitally, we have one character 'A'.In step 1, we use Copy All operation.In step 2, we use Paste operation to get 'AA'.In step 3, we use Paste operation to get 'AAA'.
题意解读:给定一个数字n,你必须在notepad上得到精确的n个A,你可以采取复制所有和粘贴两个操作。notepad上初始只有1个A.求最少需要多少个操作
//定义dp[i] 表示得到i个A所需要的最少操作数 class Solution { public int minSteps(int n) { int[] dp = new int[n+1]; //n<2返回0 if(n < 2) return 0; dp[2] = 2;//copy one and paste for (int i = 3; i <= n; i++){ for(int j = i-1 ; j>=2; j--){//j代表依次复制的个数,这里要倒着走,因为优先考虑一次复制多的 if(i%j == 0){ dp[i] = dp[j] + 1 + (i-j)/j;//copy one and paste (j-i)/j break;//一定要跳出,否则最优值会被覆盖 } else dp[i] = i; } } return dp[n]; }}
阅读全文
0 0
- LeetCode 650. 2 Keys Keyboard--动态规划
- 动态规划-650. 2 Keys Keyboard
- 动态规划中级教程。 650. 2 Keys Keyboard
- 650. 2 Keys Keyboard
- 650. 2 Keys Keyboard
- 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 650. 2 Keys Keyboard
- LeetCode -- 650. 2 Keys Keyboard
- Leetcode 650. 2 Keys Keyboard
- [LeetCode] 650. 2 Keys Keyboard
- leetcode 650. 2 Keys Keyboard
- [LeetCode] 650. 2 Keys Keyboard
- Leetcode: 650. 2 Keys Keyboard
- [后缀数组][dp]下蛋爷
- Benchmark Factory 使用简介之Agent
- JSP中的EL表达式
- [机器学习] UFLDL笔记
- (24)连接池与分页
- 动态规划-650. 2 Keys Keyboard
- 试试水
- program
- 游戏开发思想-模块化
- 关于“关于C#装箱的疑问”帖子的个人看法
- codeforces 294C组合数学)
- Selenium 使用 Selenium+PhantomJS 以静默方式完成前端页面 UI 自动化测试
- 自动生成hibernate配置文件和对象关系映射文件
- 字符设备和块设备的区别