🗒️2527. 查询数组异或美丽值
2025-1-27
| 2025-1-27
0  |  阅读时长 0 分钟
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。推广,得到只有对角线才会保留,是有效的。因此,最后的结果为
就是数组中所有元素的异或。

📎 参考

  • 【题单】位运算
  • Important
  • 2317. 操作后的最大异或和2429. 最小异或
    Loading...