comments | difficulty | edit_url | rating | source | tags | ||
---|---|---|---|---|---|---|---|
true |
简单 |
1163 |
第 408 场周赛 Q1 |
|
给你一个 正整数 数组 nums
。
Alice 和 Bob 正在玩游戏。在游戏中,Alice 可以从 nums
中选择所有个位数 或 所有两位数,剩余的数字归 Bob 所有。如果 Alice 所选数字之和 严格大于 Bob 的数字之和,则 Alice 获胜。
如果 Alice 能赢得这场游戏,返回 true
;否则,返回 false
。
示例 1:
输入:nums = [1,2,3,4,10]
输出:false
解释:
Alice 不管选个位数还是两位数都无法赢得比赛。
示例 2:
输入:nums = [1,2,3,4,5,14]
输出:true
解释:
Alice 选择个位数可以赢得比赛,所选数字之和为 15。
示例 3:
输入:nums = [5,5,5,25]
输出:true
解释:
Alice 选择两位数可以赢得比赛,所选数字之和为 25。
提示:
1 <= nums.length <= 100
1 <= nums[i] <= 99
根据题目描述,只要个位数之和不等于两位数之和,那么 Alice 一定可以选择一个较大的和来获胜。
时间复杂度
class Solution:
def canAliceWin(self, nums: List[int]) -> bool:
a = sum(x for x in nums if x < 10)
b = sum(x for x in nums if x > 9)
return a != b
class Solution {
public boolean canAliceWin(int[] nums) {
int a = 0, b = 0;
for (int x : nums) {
if (x < 10) {
a += x;
} else {
b += x;
}
}
return a != b;
}
}
class Solution {
public:
bool canAliceWin(vector<int>& nums) {
int a = 0, b = 0;
for (int x : nums) {
if (x < 10) {
a += x;
} else {
b += x;
}
}
return a != b;
}
};
func canAliceWin(nums []int) bool {
a, b := 0, 0
for _, x := range nums {
if x < 10 {
a += x
} else {
b += x
}
}
return a != b
}
function canAliceWin(nums: number[]): boolean {
let [a, b] = [0, 0];
for (const x of nums) {
if (x < 10) {
a += x;
} else {
b += x;
}
}
return a !== b;
}