作者:
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運算還要幾天呢