力扣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;
      }
  };
相关推荐
AMoon丶11 分钟前
Golang--锁
linux·开发语言·数据结构·后端·算法·golang·mutex
x_xbx12 分钟前
LeetCode:88. 合并两个有序数组
算法·leetcode·职场和发展
ฅ^•ﻌ•^ฅ120 分钟前
LeetCode hot 100(复习c++) 1-15
c++·算法·leetcode
alphaTao22 分钟前
LeetCode 每日一题 2026/3/9-2026/3/15
算法·leetcode·职场和发展
Kiyra24 分钟前
[特殊字符] LeetCode 做题笔记(二):678. 有效的括号字符串
笔记·算法·leetcode
Fcy64825 分钟前
与队列有关练习题
算法
TracyCoder12326 分钟前
LeetCode Hot100(71/100)——152. 乘积最大子数组
算法·leetcode·职场和发展
Z9fish27 分钟前
sse哈工大C语言编程练习44
c语言·c++·算法
李日灐29 分钟前
改造红黑树实现封装 map/set:感受C++ 标准容器的精妙设计与底层实现
开发语言·数据结构·c++·后端·算法·红黑树
李日灐31 分钟前
【优选算法1】双指针经典算法题
数据结构·c++·后端·算法·刷题·双指针