力扣2401.最长优雅子数组

力扣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;
      }
  };
相关推荐
山甫aa3 分钟前
哈希集合-----从零开始的数据结构学习
数据结构·算法·哈希算法
say_fall6 分钟前
有关算法的简单数学问题
数据结构·c++·算法·职场和发展·蓝桥杯
Halo_tjn6 分钟前
Java 接口的定义重构学生管理系统
java·开发语言·算法
阿Y加油吧13 分钟前
栈的经典应用:从「有效括号」到「寻找两个正序数组的中位数」深度解析
开发语言·python·算法
小杰帅气17 分钟前
算法的时间和空间复杂度
数据结构
阿Y加油吧24 分钟前
二分查找进阶:旋转排序数组的两道经典题深度解析
数据结构·算法
想带你从多云到转晴28 分钟前
05、数据结构与算法---栈与队列
java·数据结构·算法
無限進步D28 分钟前
蓝桥杯赛后总结
算法·蓝桥杯·竞赛
QuZero32 分钟前
ReentrantLock principle
java·算法
m0_7167652334 分钟前
数据结构--顺序表的插入、删除、查找详解
c语言·开发语言·数据结构·c++·学习·算法·visual studio