楼主:
Meaverzt (Meaverzt)
2025-01-17 13:38:54题目:
有一个里面只会有0跟1的阵列derived
我们要检查有没有任何binary array经过运算后会变成derived
然后运算长这样:
对每个index i in range(0,n-1)
i=n-1时derived[i]=original[i] xor original[0]
其他情况derived[i]=original[i] xor original[i+1]
思路:
假设original阵列存在的话
derived的每一项都可以写成original的两项xor
所以把derived的每一项xor的话
出来的值会等于original每一项被xor两次就是0
所以只要检查derived每一项xor是不是0
就知道original存不存在了
Code:
class Solotion {
public:
bool doesValidArrayExixt(vector<int>& derived){
int sum=0;
for (int x:derived)
sum^=x;
return sum==0;
}
};
bit运算还要几天呢