news 2026/4/26 16:15:52

最长优雅子数组

作者头像

张小明

前端开发工程师

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/4/23 8:41:19

ChatTTS惊艳效果展示:生成带笑声和换气声的对话音频

ChatTTS惊艳效果展示&#xff1a;生成带笑声和换气声的对话音频 1. 拟真语音的新标杆 "它不仅是在读稿&#xff0c;它是在表演。"这句话完美概括了ChatTTS的核心价值。作为目前开源领域最逼真的中文语音合成模型&#xff0c;ChatTTS重新定义了人机语音交互的可能性…

作者头像 李华
网站建设 2026/4/23 14:45:20

5分钟搞定抖音评论采集:零基础也能上手的数据分析工具

5分钟搞定抖音评论采集&#xff1a;零基础也能上手的数据分析工具 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper TikTokCommentScraper是一款专为零基础用户设计的抖音评论采集工具&#xff0c;无需编程经…

作者头像 李华
网站建设 2026/4/23 16:16:31

3个颠覆认知的文件伪装技术:让你的数据传输不再受限

3个颠覆认知的文件伪装技术&#xff1a;让你的数据传输不再受限 【免费下载链接】apate 简洁、快速地对文件进行格式伪装 项目地址: https://gitcode.com/gh_mirrors/apa/apate 破解格式限制的3个锦囊 在数字化办公的今天&#xff0c;文件格式限制常常成为工作效率的绊…

作者头像 李华
网站建设 2026/4/23 13:10:45

万物识别实战落地:工业质检系统搭建完整指南

万物识别实战落地&#xff1a;工业质检系统搭建完整指南 1. 为什么工业质检需要“万物识别”能力 你有没有遇到过这样的场景&#xff1a;产线每天要检测上百种不同型号的零件&#xff0c;每个零件表面缺陷类型各不相同——划痕、凹坑、色差、装配错位……传统规则算法写到崩溃…

作者头像 李华
网站建设 2026/4/23 13:58:20

无需GPU专家!VibeThinker-1.5B一键部署轻松搞定

无需GPU专家&#xff01;VibeThinker-1.5B一键部署轻松搞定 你是不是也经历过这样的时刻&#xff1a;深夜刷LeetCode卡在一道动态规划题上&#xff0c;草稿纸写满却理不清状态转移&#xff1b;数学建模时面对一个带约束的优化问题&#xff0c;反复推导仍不确定符号方向&#x…

作者头像 李华
网站建设 2026/4/26 10:31:25

为什么我推荐你用VibeVoice做播客?真实案例展示

为什么我推荐你用VibeVoice做播客&#xff1f;真实案例展示 你有没有试过用AI做一档15分钟的播客&#xff1f;不是单人朗读&#xff0c;而是两个人自然对话——有停顿、有语气变化、有角色切换&#xff0c;甚至带点即兴感。我试过七八个工具&#xff0c;直到上周用VibeVoice生…

作者头像 李华