跳到主要内容

2029.石子游戏IX

链接:2029.石子游戏IX
难度:Medium
标签:贪心、数组、数学、计数、博弈
简介:Alice 和 Bob 再次设计了一款新的石子游戏。假设两位玩家均采用 最佳 决策。如果 Alice 获胜,返回 true ;如果 Bob 获胜,返回 false 。

题解 1 - cpp

  • 编辑时间:2022-01-20
  • 执行用时:140ms
  • 内存消耗:124.2MB
  • 编程语言:cpp
  • 解法介绍:把所有数模 3 取值,分别判断当有偶数个 0 和奇数个 0 的情况下必胜条件。
class Solution {
public:
bool stoneGameIX(vector<int>& stones) {
int cnts[3] = {0};
for (auto& num : stones) cnts[num % 3]++;
return cnts[0] % 2 == 0 ? cnts[1] >= 1 && cnts[2] >= 1
: abs(cnts[2] - cnts[1]) >= 3;
}
};

题解 2 - typescript

  • 编辑时间:2022-01-20
  • 执行用时:112ms
  • 内存消耗:52.6MB
  • 编程语言:typescript
  • 解法介绍:同上。
function stoneGameIX(stones: number[]): boolean {
const cnts: number[] = new Array(3).fill(0);
for (const num of stones) cnts[num % 3]++;
return cnts[0] % 2 == 0 ? cnts[1] * cnts[2] >= 1 : Math.abs(cnts[2] - cnts[1]) >= 3;
}