本文共 922 字,大约阅读时间需要 3 分钟。
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 int n=values.length; if(n<=2) return true; int max=0; int twomax=0; //贪心 boolean turn =true; for(int i=0;i题目提示用动态规划,半天想不出来,其实用贪心完全可以。=values[i]) max+=values[++i]; }else{ twomax+=values[i]; if(i+1 =values[i]) twomax+=values[++i]; } turn =!turn; } if(max>twomax) return true; else return false; }}
两个人取的时候,决定是否取两个数的策略是看第二个数是否比第一个数大。计算两个人的最大值进行比较即可。
代码如下:
转载地址:http://zvdqi.baihongyu.com/