[LintCode]硬币排成线 II
来源:互联网 发布:画眉鸟欧阳修知的意思 编辑:程序博客网 时间:2024/06/05 09:24
http://www.lintcode.com/zh-cn/problem/coins-in-a-line-ii/
两人依次从左边取1~2个硬币,问第一个人取到的硬币值是否更大
从后向前遍历,因为第一个硬币一定会被取到。one保存当前硬币被取到,two表示当前以及他后面的一个硬币被取到,zero表示当前硬币没有被取到。res1表示res[i + 1],res2表示res[i + 2]
public class Solution { /** * @param values: an array of integers * @return: a boolean which equals to true if the first player will win */ public boolean firstWillWin(int[] values) { // write your code here if (values == null || values.length == 0) { return false; } int n = values.length; long zero = 0; long one = values[n - 1]; long two = values[n - 1]; long res1 = values[n - 1]; long res2 = 0; long sum = values[n - 1]; for (int i = n - 2; i >= 0; i--) { long tempOne = one; long tempTwo = two; one = zero + values[i]; two = tempOne + values[i]; zero = Math.min(res1, res2); res2 = res1; res1 = Math.max(one, two); sum += values[i]; } return res1 * 2 > sum; }}
0 0
- LintCode-硬币排成线 II
- LintCode :硬币排成线 II
- [LintCode]硬币排成线 II
- LintCode 硬币排成线 II
- 硬币排成线 II-LintCode
- LintCode:M-硬币排成线 II
- LintCode-硬币排成线
- LintCode : 硬币排成线
- Lintcode 硬币排成线
- 硬币排成线-LintCode
- lintcode coins-in-a-line-ii 硬币排成线ii
- lintcode Coins in Line II 硬币排成线 II
- 硬币排成线 II
- 硬币排成线 II
- LintCode-硬币排成线 III
- lintcode-硬币排成一条线
- LintCode硬币排成线 巴什博奕
- 硬币排成线—LintCode
- 20. Valid Parentheses ★
- java控制线程的执行顺序
- BeanMapper对象拷贝
- Servlet之手动配置Servlet
- leetcode 385 Mini Parser
- [LintCode]硬币排成线 II
- 将n^4降低为logn*n^2
- 【unity&文章】对象池
- Android Studio 调试机制及性能优化工具使用
- Unity导出IOS项目Error with iOS compile: Cross Compilation job Mono.WebBrowser.dll failed
- 使用mybatis-generator添加自定义分页插件时提示无法实例化插件类
- 21. Merge Two Sorted Lists★
- Java自学日记 day 20
- iOS真的安全么?掌握这些方法,破解iOS很容易