(LeetCode 每日一题) 2683. 相邻值的按位异或 (位运算)
题目:2683. 相邻值的按位异或
思路:位运算,时间复杂度0(n)。
两个相同的数进行异或操作得到的值为0,如果存在满足原始要求的数组,那么derived数组所有元素的异或和应该为0,因为derived数组所有元素的异或和 等价于 原始数组所有元素的两次异或和。
C++版本:
class Solution {
public:bool doesValidArrayExist(vector<int>& derived) {int ans=0;for(auto x:derived){ans^=x;}return ans==0;}
};
JAVA版本:
class Solution {public boolean doesValidArrayExist(int[] derived) {int ans=0;for(var x:derived){ans^=x;}return ans==0;}
}
GO版本:
func doesValidArrayExist(derived []int) bool {ans:=0for _,x:=range derived {ans^=x}return ans==0
}