题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是可以按照一个规则不断削减数组内的值,问其中有多少个子数组经过这个规则可以削减到全零的情况。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
class Solution:
def beautifulSubarrays(self, nums: List[int]) -> int:
ans = s = 0
cnt = defaultdict(int)
cnt[0] = 1
for x in nums:
s ^= x
ans += cnt[s]
cnt[s] += 1
return ans