力扣2401.最长优雅子数组
题目

题目解析及思路
题目要求返回任意两个元素异或为0的子数组的最大长度
-
用mask处理此前所有数的1的位置
- 删去nums[j]时用 ^ 是因为之前^过 再^一次就没了
代码
class Solution {
public:
int longestNiceSubarray(vector<int>& nums) {
int res=0;
int mask = 0;
for(int i=0,j=0;i<nums.size();i++)
{
while((mask & nums[i]) != 0) mask ^= nums[j++];
//再把nums[i] ^上
mask ^= nums[i];
res = max(res,i-j+1);
}
return res;
}
};

1132

被折叠的 条评论
为什么被折叠?



