class Solution {
public:
bool canAliceWin(vector<int>& nums) {
}
};
100377. 判断是否可以赢得数字游戏
给你一个 正整数 数组 nums
。
小红和小明正在玩游戏。在游戏中,小红可以从 nums
中选择所有个位数 或 所有两位数,剩余的数字归小明所有。如果小红所选数字之和 严格大于 小明的数字之和,则小红获胜。
如果小红能赢得这场游戏,返回 true
;否则,返回 false
。
示例 1:
输入:nums = [1,2,3,4,10]
输出:false
解释:
小红不管选个位数还是两位数都无法赢得比赛。
示例 2:
输入:nums = [1,2,3,4,5,14]
输出:true
解释:
小红选择个位数可以赢得比赛,所选数字之和为 15。
示例 3:
输入:nums = [5,5,5,25]
输出:true
解释:
小红选择两位数可以赢得比赛,所选数字之和为 25。
提示:
1 <= nums.length <= 100
1 <= nums[i] <= 99
原站题解
golang 解法, 执行用时: 3 ms, 内存消耗: 2.9 MB, 提交时间: 2024-07-29 17:29:06
func canAliceWin(nums []int) bool { ones, twos := 0, 0 for _, num := range nums { if num < 10 { ones += num } else { twos += num } } return ones != twos; }
java 解法, 执行用时: 0 ms, 内存消耗: 43 MB, 提交时间: 2024-07-29 17:28:18
class Solution { // 一次遍历,统计个位数和两位数各自的和,判断两个和是否相等 public boolean canAliceWin(int[] nums) { int ones = 0; int twos = 0; for (int num: nums) { if ( num < 10 ) { ones += num; } else { twos += num; } } return ones != twos; } }
python3 解法, 执行用时: 42 ms, 内存消耗: 16.3 MB, 提交时间: 2024-07-29 17:26:11
class Solution: def canAliceWin(self, nums: List[int]) -> bool: one_s, two_s = 0, 0 for num in nums: one_s += 0 if num < 10 else num two_s += 0 if num >= 10 else num return one_s != two_s