news 2026/3/14 4:44:21

最长优雅子数组

作者头像

张小明

前端开发工程师

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/3/12 21:45:55

Hunyuan-MT-7B翻译大模型5分钟快速部署指南:33种语言一键搞定

Hunyuan-MT-7B翻译大模型5分钟快速部署指南&#xff1a;33种语言一键搞定 无需复杂配置&#xff0c;5分钟内完成Hunyuan-MT-7B部署并开始多语言翻译&#xff0c;本文将手把手带你从零启动这个在WMT25中斩获30项语言冠军的开源翻译模型 1. 为什么选择Hunyuan-MT-7B&#xff1f;一…

作者头像 李华
网站建设 2026/3/13 4:51:44

MGeo能否替代正则匹配?生产环境中性能对比评测报告

MGeo能否替代正则匹配&#xff1f;生产环境中性能对比评测报告 1. 为什么地址匹配不能只靠正则&#xff1f; 你有没有遇到过这样的问题&#xff1a;用户在不同系统里填的地址&#xff0c;看着是同一个地方&#xff0c;但格式千差万别—— “北京市朝阳区建国路8号SOHO现代城C…

作者头像 李华
网站建设 2026/3/13 20:17:13

3D Face HRN实际作品集:不同光照/角度/肤色下3D重建稳定性实测

3D Face HRN实际作品集&#xff1a;不同光照/角度/肤色下3D重建稳定性实测 1. 模型核心能力展示 3D Face HRN人脸重建模型基于iic/cv_resnet50_face-reconstruction技术构建&#xff0c;能够从单张2D照片中还原出高精度的3D面部结构。这个系统最令人惊叹的地方在于&#xff0…

作者头像 李华
网站建设 2026/3/11 16:50:46

零基础也能用!Fun-ASR语音识别WebUI新手入门指南

零基础也能用&#xff01;Fun-ASR语音识别WebUI新手入门指南 你是不是也遇到过这些情况&#xff1a; 会议录音堆在文件夹里&#xff0c;迟迟没时间整理&#xff1b; 客户电话内容记不全&#xff0c;回溯时反复听又费时间&#xff1b; 培训视频想加字幕&#xff0c;但手动打字太…

作者头像 李华