问题:
public boolean firstWillWin(int[] values) {
// write your code here
int n = values.length;
int f[][] = new int[n][n];
int i, j, len;
if(n <= 2){
return true;
}
for(i=0; i<n; i++){
f[i][i] = values[i];
}
for(i=0; i<n-1; i++){
f[i][i+1] = Math.max(values[i] - values[i+1], values[i+1] - values[i]);
}
for(len=2; len<n; len++){
for(i=0; i<n-len; i++){
j = i + len;
f[i][j] = Math.max(values[i] - f[i+1][j], values[j] - f[i][j-1]);
}
}
return f[0][n-1] >= 0;
}