leetcode2401-最长优雅子数组-位运算的巧妙使用
原题链接:
https://leetcode.cn/problems/longest-nice-subarray/
这题关键在于想到:
1.或运算(|) 可以保存一段连续的数中 互相与运算(&)的结果
比如 如果要判断 001 与 101 110相与是否为0
其实就是看 001 的1的位置 与 101 110中1的位置是否重合
就等价于看001中1的位置是否与 111中1的位置是否重合
2.异或运算可以还原或运算的结果
或运算的过程其实就是保留1的过程 将之前同样的数与当前与结果按顺序异或相当于不断将保留的1 进行还原
1 | class Solution: |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 niiish32x 's blog!