用mask处理此前所有数的1的位置
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;
}
};