[LeetCode] 810. 黑板异或游戏 Java/C++ 原来是道数学推理题?

Posted oyzg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 810. 黑板异或游戏 Java/C++ 原来是道数学推理题?相关的知识,希望对你有一定的参考价值。

Java/C++ 原来是道数学推理题?

链接:https://leetcode-cn.com/problems/chalkboard-xor-game/solution/javac-yuan-lai-shi-dao-shu-xue-tui-li-ti-jrwx/

解题思路
怎么才能赢?
如果数组长度为偶数,那么怎么拿,Alice都赢
但如果长度是奇数呢?奇数就输了吗?不一定,如果数组本来异或结果就为0,那么Alice还是赢
所以,根据这两点,就可以写出答案了!

Java:

class Solution {
    public boolean xorGame(int[] nums) {
        int x = 0;
        for(int num : nums) {
            x ^= num;
        }
        if(x == 0) return true;
        return nums.length%2==0;
    }
}

c++:

class Solution {
public:
    bool xorGame(vector<int>& nums) {
        int x = 0;
        for(int num : nums) {
            x ^= num;
        }
        if(x == 0) return true;
        return nums.size()%2==0;
    }
};

以上是关于[LeetCode] 810. 黑板异或游戏 Java/C++ 原来是道数学推理题?的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode篇:810 黑板异或游戏(JavaScript版)

LeetCode篇:810 黑板异或游戏(JavaScript版)

LeetCode篇:810 黑板异或游戏(JavaScript版)

LeetCode篇:810 黑板异或游戏(JavaScript版)

LeetCode 810 黑板异或游戏[数学 异或] HERODING的LeetCode之路

[LeetCode] 810. 黑板异或游戏 Java/C++ 原来是道数学推理题?