力扣2401.最长优雅子数组
-
用mask处理此前所有数的1的位置
- 删去nums[j]时用 ^ 是因为之前^过 再^一次就没了
cpp
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;
}
};