news 2026/8/17 19:14:58

8.15【A】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
8.15【A】

3702

首先应当寻找最大元素,因为最大元素转为二进制与其它数异或后,其最高位最可能不变

然后考虑最大元素为奇数还是偶数

如果是偶数,那么只要不是异或自身,则与其它数的异或结果一定不是0,因为有自己的最高位

如果为奇数,那么应该跳过小于它的紧邻偶数

不过这考虑的是第一个数,即如果已经有一个安全偶数,则后续奇数和其紧邻偶数可一起出现

所以应当先排序,然后寻找第一个安全偶数

找到后再接上剩余数组的数量即可

先判断第一个数是否为偶数,如果是,则res=size

如果为奇数,看其紧邻的下一个数是奇数还是偶数

如果是奇数,则res+=1

如果为偶数,检测是否为紧邻的,如果是,则res=size-1

否则,res=size-1

或许不是偶数的问题,而是最高位的1什么时候确定的问题,最高位的1一旦确定,那么剩下的都可以随便选

如果第一个数是偶数,那么res=size
如果是奇数,看下一个是否为紧邻偶数,如果是,那就只能二选一,为size-1

否则,也是res=size

还要考虑去重的问题,有重复元素

也就还是只考虑最大元素的重复问题

如果最大元素重复奇数次,那不影响

如果重复偶数次,则需要再去掉一个

应当先完成最大元素的去重,再判断紧邻元素

对于奇数的紧邻偶数,应该也要考虑偶数的重复情况,即如果它重复奇数次,则正常减1,否则不用减

存在问题,就是4和5

4是100,5是101

奇数后面是其紧邻偶数,不一定结果就是0,只是其最高位为0

那要这要考虑,问题就复杂了,不过结果只是这个1该不该减的问题

class Solution { public: int longestSubsequence(vector<int>& nums) { if(nums.size()==1){ return 1; } sort(nums.begin(),nums.end()); int res=nums.size(),beg=nums.size()-1; while(beg>0&&(nums[beg]==nums[beg-1])){ beg--; } if((nums.size()-beg)%2==0){ res--; } if(beg==0){return res;} if(nums[beg]%2){ if((nums[beg]-nums[beg-1])==1){ int beg2=beg-1; while(beg2>0&&(nums[beg2]==nums[beg2-1])){ beg2--; } if((beg-beg2)%2){ res--; } } } return res; // if(nums[nums.size()-1]%2){ // if((nums[nums.size()-1]-nums[nums.size()-2])==1){ // return nums.size()-1; // }else{ // return nums.size(); // } // }else{ // return nums.size(); // } //return nums[nums.size()-1]-nums[nums.size()-2]==1? } };

SUSim

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

OpenSubtitlesDownload安全指南:账号密码与API密钥管理的最佳实践

OpenSubtitlesDownload安全指南&#xff1a;账号密码与API密钥管理的最佳实践 【免费下载链接】OpenSubtitlesDownload Automatically find and download the right subtitles for your favorite videos! 项目地址: https://gitcode.com/gh_mirrors/op/OpenSubtitlesDownload…

作者头像 李华
网站建设 2026/8/17 19:12:09

窗口尺寸改不动?用 SRWE 在程序运行中直接改

窗口尺寸改不动&#xff1f;用 SRWE 在程序运行中直接改 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 很多人在用电脑时都会碰到同一个烦恼&#xff1a;窗口尺寸被程序"锁死"。游戏只能开到预设的分…

作者头像 李华
网站建设 2026/8/17 19:10:33

STM32 + FreeRTOS 课程(5):从需求到 Task 的完整系统设计流程

一、前言 学习 FreeRTOS 时&#xff0c;很多初学者容易陷入一个误区&#xff1a; 学了很多 API&#xff0c;但是不知道什么时候使用。 例如&#xff1a; 什么时候创建 Task&#xff1f;什么时候使用 Queue&#xff1f;什么时候使用 Semaphore&#xff1f;什么时候使用 Mutex&…

作者头像 李华
网站建设 2026/8/17 19:10:01

sbt-release 多 VCS 支持详解:Git、Mercurial、SVN 的集成与差异

sbt-release 多 VCS 支持详解&#xff1a;Git、Mercurial、SVN 的集成与差异 【免费下载链接】sbt-release A release plugin for sbt 项目地址: https://gitcode.com/gh_mirrors/sb/sbt-release sbt-release 是一款专为 sbt 项目打造的开源发布插件&#xff08;release…

作者头像 李华