力扣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;
      }
  };
相关推荐
老鼠只爱大米5 分钟前
LeetCode算法题详解 56:合并区间
leetcode·并查集·合并区间·区间合并·线性扫描·算法面试
C雨后彩虹23 分钟前
无向图染色
java·数据结构·算法·华为·面试
坚持就完事了30 分钟前
扫描线算法
算法
鱼跃鹰飞33 分钟前
Leetcode尊享面试100题:252. 会议室
算法·leetcode·面试
程序员-King.34 分钟前
二分查找——算法总结与教学指南
数据结构·算法
Zevalin爱灰灰36 分钟前
现代控制理论——第三章 线性控制系统的能控性和能观性
线性代数·算法·现代控制
kklovecode37 分钟前
C语言之头文件,宏和条件编译
c语言·开发语言·算法
Xの哲學1 小时前
Linux自旋锁深度解析: 从设计思想到实战应用
linux·服务器·网络·数据结构·算法
晚风吹长发1 小时前
深入理解Linux中用户缓冲区,文件系统及inode
linux·运维·算法·链接·缓冲区·inode
程序员-King.1 小时前
day131—链表—反转链表Ⅱ(区域反转)(LeetCode-92)
leetcode·链表·贪心算法