列表

详情


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。

 

提示:

相似题目

统计位数为偶数的数字

统计各位数字之和为偶数的整数个数

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool canAliceWin(vector<int>& nums) { } };

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

上一题