当前位置: 首页 > wzjs >正文

江阴建设网站推盟

江阴建设网站,推盟,刷赞抖音推广网站,wordpress写作插件LeetCode 面试题 17.19. 消失的两个数字 思路🧐: 运用位运算,我们先创建一个变量tmp,依次异或nums和1~N所有整数,此时就可以得到两个数的异或值。 然后通过右移操作,逐位检查tmp中的每一位,找到…

LeetCode 面试题 17.19. 消失的两个数字

image-20250303192344510

思路🧐:

  运用位运算,我们先创建一个变量tmp,依次异或nums和1~N所有整数,此时就可以得到两个数的异或值。

  然后通过右移操作,逐位检查tmp中的每一位,找到第一个为1的位,用diff变量存储起来,表示两个数字的该位是不同的(一个为0,一个为1,异或以后必定为1)。

  由此我们可以分组,diff位为1的为一组,diff位为0的为一组,分别对这两组数字与nums进行异或操作,得到两个的数字。再将这两个数字与1~N异或起来,而nums中的数字一定会出现两次,则相同数字异或结果为0,最后就可以得到两个缺失的数字。

Pasted image 20250303105256

代码🔎:

class Solution {
public:vector<int> missingTwo(vector<int>& nums) {int tmp = 0;for(auto e : nums) tmp ^= e;for(int i = 1; i <= nums.size() + 2; i++)    tmp ^= i; //得到缺失数字的异或int diff = 0; //找到不同位while(1){if(((tmp >> diff) & 1) == 1) //如果该位为1,表示一个为0,一个为1,由此分组break;diff++;}int a = 0, b = 0; //由diff位是0是1进行分组for(auto e : nums)if(((e >> diff) & 1) == 1) a ^= e; // 该位为1,分到a组else b ^= e; //否则b组for(int i = 1; i <= nums.size() + 2; i++) // 与1~N所有数异或,也需要分组,不过此时相同的数异或为0,按照分组,最后得到两个缺失的数if(((i >> diff) & 1) == 1) a ^= i; // 该位为1,分到a组else b ^= i; //否则b组return {a,b};}
};

image-20250303193551997

http://www.dtcms.com/wzjs/834349.html

相关文章:

  • 深圳本地网站建设广州地铁运营时间
  • 云霄建设局网站微信网站对接
  • 网络营销企业网站优化湖南有实力竞价优化服务
  • 为什么网站建设要值班ui设计师的职业规划
  • 莱西大型网站建设银川网站建设怎么样
  • 太原市住房和城乡建设部网站开个做网站的公司 知乎
  • 乐清网站制作电话网站点击率原因
  • 南浔住房和城乡建设局网站做本地网站怎么挣钱
  • 网站建设毕业设计报告书百度统计代码安装位置
  • 模板网站什么意思手机网站导航设计模板
  • 用服务器建立网站吗江门网站推广优化
  • 伍佰亿网站系统软件服务商
  • 网站设计之路英国跨境电商平台有哪些
  • 建设网站要什么资料南沙定制型网站建设
  • 企业做网站都购买域名吗专业做网站 上海
  • 嘉兴做网站seo的保定市城市规划建设局网站
  • wordpress如何禁止注册seo的搜索排名影响因素有
  • 遵义新蓝外国语学校网站建设小程序注册失败怎么办
  • 义乌义亭招工做网站养猪工作农业公园网站建设
  • 网站查询ip广州建外贸网站公司简介
  • 如何用云指做自己的网站婚庆公司排名前十
  • 花瓣按照哪个网站做的应用网站如何做
  • 许昌北京网站建设window安装wordpress
  • wordpress 全站404网页制作文字素材
  • 宁波网站推广厂家电话广州做网站那家好
  • 如何在网站做旅游产品怎样做废旧网站
  • 菏泽外贸网站建设公司近期新闻热点
  • 网络营销资讯网站公众号的维护与运营
  • 企业购 网站建设ppt模板免费下载完整版免费无需会员
  • 免费搭建公司网站网站做的好不好数据