1442. Count Triplets That Can Form Two Arrays of Equal XOR 有一個整數array 找出三個index:i、j、k a=arr[i]^arr[i+1^...^arr[j-1] b=arr[j]^arr[j+1]^...^arr[k] 然後a==b 思路 a==b -> b^a==b^b -> b^a ==0 用兩層for loop找出subarray裡面所有元素XOR的結果為零 a^b==0 -> a^a^b==a^0 -> b==a 這個subarray中的任意兩個subarray都可以滿足題目需求 golang code : func countTriplets(arr []int) int { n,ans:=len(arr),0 for i:=0;i<n;i++{ sum:=arr[i] for j:=i+1;j<n;j++{ sum^=arr[j] if sum==0{ ans+=j-i } } } return ans } -- https://i.imgur.com/r9FBAGO.gif
-- ※ 發信站: 批踢踢實業坊(ptt-website.tw), 來自: 42.72.97.242 (臺灣) ※ 文章網址: https://ptt-website.tw/Marginalman/M.1717074353.A.EAC
sustainer123: 大師 05/30 21:17