486. Predict the Winner | 486. 预测赢家(博弈论)
生活随笔
收集整理的這篇文章主要介紹了
486. Predict the Winner | 486. 预测赢家(博弈论)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode.com/problems/predict-the-winner/
題解
這道題和 leetcode 877. Stone Game | 877. 石子游戲(遞歸/動態規劃/數學解法) 比較像。一開始以為又是一個恒等問題,后來看了答案發現并不是。而且從數據規模上來看,這題用暴力是能通過的。
class Solution {public boolean PredictTheWinner(int[] nums) {if (nums.length % 2 == 0) return true; // 偶數個先手必勝else return getMaxScore(nums, 0, nums.length - 1) >= 0;}public int getMaxScore(int[] nums, int L, int R) { // 計算作為當前輪的先手,能比對方多得的分數if (L == R) return nums[L];int left = nums[L] - getMaxScore(nums, L + 1, R); // 選左邊int right = nums[R] - getMaxScore(nums, L, R - 1); // 選右邊return Math.max(left, right);} }總結
以上是生活随笔為你收集整理的486. Predict the Winner | 486. 预测赢家(博弈论)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 478. Generate Random
- 下一篇: leetcode 491. Increa