class Solution {
public:
bool dfs(vector<int>& nums, int left, int right, bool flag, int tar1, int tar2) {
if (left > right) {
return tar1 >= tar2;
}
if (flag) {
// Player 1's turn
return dfs(nums, left + 1, right, !flag, tar1 + nums[left], tar2) ||
dfs(nums, left, right - 1, !flag, tar1 + nums[right], tar2);
} else {
// Player 2's turn
return dfs(nums, left + 1, right, !flag, tar1, tar2 + nums[left]) &&
dfs(nums, left, right - 1, !flag, tar1, tar2 + nums[right]);
}
}
bool predictTheWinner(vector<int>& nums) {
int left = 0;
int right = nums.size() - 1;
bool flag = true;
int tar1 = 0, tar2 = 0; // 初始化 tar1 和 tar2
return dfs(nums, left, right, flag, tar1, tar2);
}
};
leetcode:预测赢家
最新推荐文章于 2024-07-25 11:15:54 发布