🗒️2401. 最长优雅子数组
2025-2-8
| 2025-2-8
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Feb 8, 2025 01:49 AM
给你一个由  整数组成的数组 nums 。
如果 nums 的子数组中位于 不同 位置的每对元素按位 与(AND)运算的结果等于 0 ,则称该子数组为 优雅 子数组。
返回 最长 的优雅子数组的长度。
子数组 是数组中的一个 连续 部分。
注意:长度为 1 的子数组始终视作优雅子数组。

位运算——与或(AND/OR)

思路:将位运算当作集合来进行处理。常见操作对应:

集合与集合

集合操作
位运算
交集
a & b
并集
a | b
对称差
a ^ b
a & ~b
差(子集)
a ^ b
判断是否为子集(包含于)
a & b = a, a | b = b(a 属于 b)

集合与元素

集合操作
位运算
全集
(1 << n) - 1
补集
((1 << n) - 1) ^ s
属于
(s >> i) & 1 = 1
不属于
(s >> i) & 1 = 0
添加元素
s | (1 << i)
删除元素
s & ~(1 << i)
删除元素(一定在集合中)
s ^ (1 << i)
补充:
notion image

📎 参考

  • 【题单】位运算
  • 477. 汉明距离总和2871. 将数组分割成最多数目的子数组
    Loading...