news 2026/6/9 20:15:05

最长优雅子数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
最长优雅子数组

2401. 最长优雅子数组 - 力扣(LeetCode)来源于题解,有自己的解读

class Solution { public: int longestNiceSubarray(vector<int>& nums) { //滑动窗口去做 int ans=0,left=0,or_=0;//or_保存最优子序列中所有数据的二进制位为1的最终组合 //right去遍历数组 for(int right=0;right<nums.size();right++) { //&后不为0,去掉左边界(异或:相同抵消) while(or_&nums[right])//用while而不是if:固定当前右边界,从左到右依次去看应该把最优子数组里面的哪些元素去掉 { or_^=nums[left++]; } //&后为0,把nums[right]加入or_中 or_|=nums[right]; ans=max(ans,right-left+1); } return ans; } };

1、考察:滑动窗口 + 位运算

2、这段代码用滑动窗口(双指针)维护一个「始终满足优美条件」的窗口[left, right],并用一个变量or_记录窗口内所有数的「二进制 1 的集合」or_的某一位为 1,说明窗口内有数字的这一位是 1)。

操作含义举例
or_ & nums[right]判断 nums [right] 和窗口内的数是否有重叠的 1:- 结果≠0 → 有重叠(窗口不满足优美条件);- 结果 = 0 → 无重叠(可以加入窗口)假设 or_=011(窗口内有 1、2),nums [right]=4(100):011 & 100 = 0 → 无重叠;若 nums [right]=2(010):011 & 010 = 010≠0 → 有重叠
`or_= nums[right]`把 nums [right] 的 1 加入 or_(标记窗口内新增的 1 的位置)or_=011,nums[right]=4(100):011 | 100 = 111 → or_更新为 111
or_ ^= nums[left]从 or_中移除 nums [left] 的 1(窗口左边界收缩,去掉该数的 1)前提:窗口内每个数的 1 都是唯一的(否则不能用异或),比如 or_=111,nums [left]=2(010):111 ^ 010 = 101 → or_去掉了 010 这一位

完整执行示例(nums = [1,3,8,48,10])

3、核心操作重用:高(&/|/^ 是位运算的基础,面试常考):

  • x & 1:判断奇偶;
  • x ^ x = 0:找唯一数;
  • x | y:合并状态;
  • x & (x-1):消除最后一个 1(比如统计 1 的个数)。

4、总结

(1)代码核心:滑动窗口维护优美子数组,or_记录窗口内 1 的集合,用 & 判断重叠、| 添加、^ 移除;

(2)位运算关键:or_ & nums[right]≠0说明有重叠,需收缩左边界;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 8:19:00

Z-Image-Turbo适合做设计吗?电商应用场景实测反馈

Z-Image-Turbo适合做设计吗&#xff1f;电商应用场景实测反馈 1. 真实设计场景下的第一印象&#xff1a;不是玩具&#xff0c;是生产力工具 刚打开 http://localhost:7860 的那一刻&#xff0c;我并没有急着输入提示词。而是盯着那个简洁的 WebUI 界面看了两分钟——没有花哨…

作者头像 李华
网站建设 2026/6/6 12:50:56

一键生成创意视频:WAN2.2文生视频中文提示词使用指南

一键生成创意视频&#xff1a;WAN2.2文生视频中文提示词使用指南 你有没有过这样的时刻——脑子里已经浮现出一段生动的短视频画面&#xff1a;春日樱花纷飞中&#xff0c;一只机械猫轻跃过青瓦屋檐&#xff1b;或是深夜书桌前&#xff0c;毛笔字迹在宣纸上缓缓晕染成水墨动画……

作者头像 李华
网站建设 2026/6/6 11:14:21

移动端适配中:手机也能用的卡通化工具来了

移动端适配中&#xff1a;手机也能用的卡通化工具来了 1. 这不是“又一个”卡通滤镜&#xff0c;而是真正能用在手机上的专业人像处理工具 你有没有试过在手机上给人像加卡通效果&#xff1f;打开某款修图App&#xff0c;点几下&#xff0c;出来的结果要么像劣质贴纸&#xf…

作者头像 李华
网站建设 2026/6/6 12:41:58

动漫配音对口型难?IndexTTS 2.0时长可控完美匹配

动漫配音对口型难&#xff1f;IndexTTS 2.0时长可控完美匹配 你有没有试过给一段2.3秒的动漫嘴型动画配语音&#xff1f;反复调整语速、删减字数、重录三遍&#xff0c;最后还是差半帧——画面里角色嘴唇刚闭上&#xff0c;你的配音“了”字才拖出尾音。这不是剪辑师的噩梦&am…

作者头像 李华
网站建设 2026/6/6 12:08:49

OFA视觉蕴含模型应用场景:跨境电商多语言商品图文一致性验证

OFA视觉蕴含模型应用场景&#xff1a;跨境电商多语言商品图文一致性验证 1. 项目背景与核心价值 跨境电商平台面临一个普遍挑战&#xff1a;商品图片与描述文字不一致的问题。当卖家使用多语言描述商品时&#xff0c;人工审核成本高且效率低下。OFA视觉蕴含模型为解决这一问题…

作者头像 李华