力扣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;
      }
  };
相关推荐
渡过晚枫几秒前
[第十四届蓝桥杯/java/算法]国赛A——跑步计划
算法
hanlin033 分钟前
刷题笔记:力扣第17题-电话号码的字母组合
笔记·算法·leetcode
不是株14 分钟前
算 法
数据结构·python·算法
云泽80815 分钟前
蓝桥杯算法精讲:从宏观角度重新认识递归
算法·职场和发展·蓝桥杯
自信1504130575916 分钟前
插入排序算法
c语言·数据结构·算法·排序算法
阿Y加油吧21 分钟前
力扣打卡day09——缺失的第一个正数、矩阵置零
数据结构·算法·leetcode
2301_8184190121 分钟前
C++中的状态模式实战
开发语言·c++·算法
仰泳的熊猫22 分钟前
题目2576:蓝桥杯2020年第十一届省赛真题-解码
数据结构·c++·算法·蓝桥杯
CSDN_kada24 分钟前
杭电网安复试编程Day23
c++·考研·算法
灰色小旋风28 分钟前
力扣16 最接近的三数之和(C++)
数据结构·c++·算法·leetcode