leetcode 中等九 877.石子游戲

石子游戲:

 

動態規劃,別跟我扯什麼博弈論,我不會:

php,12ms,超過100%。

狀態轉移方程:

$dp[$i] = max($piles[$i-1],$piles[$j])+$dp[$i-1]-min($piles[$i-1],$piles[$j]);
  • 解答裏面有很多都是用二維數組做的,其實一位數組就夠了。用dp[i]來表示第i 輪中Alex比Lee多的石子
  • 官方解答的第二種:return true
class Solution {

    /**
     * @param Integer[] $piles
     * @return Boolean
     * zhangc
     */
    function stoneGame($piles) {
        $dp = [];
        $dp[0] = 0;
        $j = count($piles)-1;
        for($i = 1;$i < (count($piles)/2)+1;$i++){
            $dp[$i] = max($piles[$i-1],$piles[$j])+$dp[$i-1]-min($piles[$i-1],$piles[$j]);
            $j--;
        }
        return end($dp)>0?true:false;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章