力扣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;
      }
  };
相关推荐
We་ct12 分钟前
LeetCode 30. 串联所有单词的子串:从暴力到高效,滑动窗口优化详解
前端·算法·leetcode·typescript
-Try hard-14 分钟前
数据结构|概念及单向有头链表
数据结构·算法·vim
历程里程碑16 分钟前
子串----和为K的子数组
大数据·python·算法·leetcode·elasticsearch·搜索引擎·哈希算法
郝学胜-神的一滴16 分钟前
Python List操作:+、+=、extend的深度解析
开发语言·数据结构·python·程序人生·架构·list
Aaron158818 分钟前
通信灵敏度计算与雷达灵敏度计算对比分析
网络·人工智能·深度学习·算法·fpga开发·信息与通信·信号处理
2301_7903009620 分钟前
C++中的命令模式
开发语言·c++·算法
2301_8223769422 分钟前
C++中的解释器模式
开发语言·c++·算法
xhbaitxl26 分钟前
算法学习day31-贪心算法
学习·算法·贪心算法
爱学习的阿磊27 分钟前
C++代码冗余消除
开发语言·c++·算法
YuTaoShao27 分钟前
【LeetCode 每日一题】2976. 转换字符串的最小成本 I
算法·leetcode·职场和发展