type
status
date
slug
summary
tags
category
icon
password
创建时间
Jan 27, 2025 10:02 AM
给你一个下标从 0 开始的整数数组
nums
。三个下标
i
,j
和 k
的 有效值 定义为 ((nums[i] | nums[j]) & nums[k])
。一个数组的 异或美丽值 是数组中所有满足
0 <= i, j, k < n
的三元组 (i, j, k)
的 有效值 的异或结果。请你返回
nums
的异或美丽值。注意:
val1 | val2
是val1
和val2
的按位或。
val1 & val2
是val1
和val2
的按位与。
位运算——异或
暴力做法
超时
根据对称性化简
参考 我爱志方小姐
假设
nums = [a, b, c]
,根据暴力运算有:根据异或的性质,
((a | b) & a ) ^ ((b | a) & a)
结果为 0。推广,得到只有对角线最后才会保留,是有效的。我们得到化简得到:
再次根据异或的性质,
(b & a) ^ (a & b)
结果为 0。推广,得到只有对角线才会保留,是有效的。因此,最后的结果为就是数组中所有元素的异或。