public boolean firstWillWin_v2(int[] values) {
        // write your code here
        int n = values.length;
        int sum = 0;
        for (int i : values)
            sum += i;
        int[][] dp = new int[n][n];
        // dp[i][j] = val[i] + min(dp[i+2][j], dp[i+1][j-1])
        //            val[j] + min(dp[i+1][j-1], dp[i][j-2]
        // return dp[0][n - 1] * 2 > sum;

        return helper(dp, values, 0, n - 1) * 2 > sum;
    }