Re: [閒聊] 每日leetcode

作者: ray90514 (讀書人)   2024-05-30 10:40:44
1442. Count Triplets That Can Form Two Arrays of Equal XOR
xor sum i to j = xor sum 0 to j ^ 0 to i - 1
xor sum i to j - 1 = sum 0 to j - 1 ^ 0 to i - 1 = j to k = 0 to k ^ 0 to j - 1
兩邊的xor sum 0 to j - 1可以消掉
所以找兩個從0開始xor相等的就是i 跟k
j是其中任意的數
class Solution {
public:
int countTriplets(vector<int>& arr) {
vector<int> v(arr.size());
int sum = 0;
int ans = 0;
for(int i = 0; i < arr.size(); i++){
v[i] = sum;
sum ^= arr[i];
for(int j = 0; j < i; j++){
if(v[j] == sum){
ans += i - j;
}
}
}
return ans;
}
};
作者: DJYOSHITAKA (Evans)   2024-05-30 10:42:00
大師
作者: sustainer123 (caster)   2024-05-30 10:42:00
今天這題好難:((( 恨位運算

Links booklink

Contact Us: admin [ a t ] ucptt.com