Golang刷LeetCode 877. 石子游戏

    科技2022-08-27  111

    题目 代码实现:

    方法一: func stoneGame(piles []int) bool { return true }

    解题思路:以四堆为例。 作为第一个拿石头的人,你可以控制自己拿到所有偶数堆,或者所有的奇数堆。最开始可以选择第 1 堆或第 4 堆。如果你想要偶数堆,你就拿第 4 堆,这样留给对手的选择只有第 1、3 堆,他不管怎么拿,第 2 堆又会暴露出来,你就可以拿。同理,如果你想拿奇数堆,你就拿第 1 堆,留给对手的只有第 2、4 堆,他不管怎么拿,第 3 堆又给你暴露出来了。 也就是说,你可以在第一步就观察好,奇数堆的石头总数多,还是偶数堆的石头总数多。然后一步步赢得胜利。

    方法二(动态规划): 待补充。。。
    Processed: 0.018, SQL: 9