题目
代码实现:
- 方法一:
func stoneGame(piles []int) bool {
return true
}
解题思路:以四堆为例。
作为第一个拿石头的人,你可以控制自己拿到所有偶数堆,或者所有的奇数堆。最开始可以选择第 1 堆或第 4 堆。如果你想要偶数堆,你就拿第 4 堆,这样留给对手的选择只有第 1、3 堆,他不管怎么拿,第 2 堆又会暴露出来,你就可以拿。同理,如果你想拿奇数堆,你就拿第 1 堆,留给对手的只有第 2、4 堆,他不管怎么拿,第 3 堆又给你暴露出来了。
也就是说,你可以在第一步就观察好,奇数堆的石头总数多,还是偶数堆的石头总数多。然后一步步赢得胜利。
- 方法二(动态规划):
待补充。。。