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

中山市饮食网站建设俄罗斯搜索引擎yandex官网入口

中山市饮食网站建设,俄罗斯搜索引擎yandex官网入口,武汉网站建设哪里好,网站建设费用 优帮云题目简介 一个数组中只有2个数字只有一个,其他数字都有两个。找出这两个数字。a, b 用HashMap记录就不说了。 这里记录一下用异或的方式解决。 由于异或特性为自己异或自己为0。a^a 0;所以可以异或数组中的所有数字得出 a^b 的结果,其他相同的都消掉…

题目简介

一个数组中只有2个数字只有一个,其他数字都有两个。找出这两个数字。a, b

用HashMap记录就不说了。

这里记录一下用异或的方式解决。

  1. 由于异或特性为自己异或自己为0。a^a = 0;
  2. 所以可以异或数组中的所有数字得出 a^b 的结果,其他相同的都消掉了。
  3. 又a != b 因此,a^b 的结果在二进制中,肯定有一位是1。这个也好理解。

下面就是我半天不能理解的点了。这里记录一下。

上面说a^b 肯定有一位是1。然后通过遍历数组的所有项,以这一位是不是为1分成两组。

我就很纳闷,理解了很久,为什么以这个条件分成两组。

后来终于想到

因为a^b至少有一位是1的话,那么在a 和b的二进制当中,这一位一定是1个为0,一个为1。

比如:

a: xxx0xx,
b: xxx1xx,

这样通过这一位去分组的话。就拿到两个数组,分别存在a和b。这两个数组的其他项不用担心,也一定是有重复,可以异或成0的。

如:

arr1: [a, 1, 1, 2, 2];
arr2: [b, 2, 2, 3, 3];

进一步理解,既然a的这一位为0(举例),那么数组中其他这一位 为0的就不可能是b。

那我怎么知道其他这些数字能两两成对呢?

因为这一位是0 的数字有一个满足的话,那和他相同的那个数字也能满足。就一定是成对出现的。(反证法了属于😂)

这样通过遍历arr1 的所有项就能获取a的值了。

获取b的值也可以复用刚才a^b 的结果。使a^b^a = b了;

至于怎么获取这一位变成 0001000,就看其他文章,本文不做讨论。

代码就不放了。思路最重要。

http://www.hkea.cn/news/333640/

相关文章:

  • jeecms做企业网站成都网站建设公司排名
  • 沈阳招聘网站开发地推项目平台
  • 798艺术区成都seo达人
  • 平度网站建设抖音代运营收费详细价格
  • 株洲网站优化找哪家seo优化的价格
  • 找印度人做网站sem竞价推广公司
  • 山西网站推广公司网站关键词优化怎么弄
  • 微信分销是什么重庆优化seo
  • 武汉企业网站推广方案永久免费无代码开发平台网站
  • 网站开发岗位群怎样推广产品
  • 桐城市美丽乡村建设专题网站石家庄整站优化技术
  • 北京建网站的公司哪个比较好郑州seo价格
  • 进空间的网站网络营销常见的工具
  • wordpress发文章的id怎么不连续如何做好搜索引擎优化工作
  • 交互式网站如何做seo推广软件排名
  • 西部建设网站惠州seo排名优化
  • 做环球资源网站有没有效果2024百度下载
  • 织梦 安装网站网站搭建需要多少钱
  • 做网站购买备案域名性价比高seo的排名优化
  • 潍坊中脉网站建设公司淄博seo公司
  • 深圳做网站推广哪家好青岛关键词优化平台
  • 呼和浩特市网站建设公司uc搜索引擎入口
  • 网站怎么做关键词搜索电子商务主要学什么内容
  • python做的网站漏洞百度竞价推广开户联系方式
  • 做任务换流量的网站怎么自己制作网页
  • 福清建设局网站火蝠电商代运营公司
  • 爱玖货源站在线智能识图
  • 上海网络营销软件windows优化大师win10
  • 专做美妆的视频网站ui设计
  • 平度市建设局网站济宁百度推广价格