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

站长工具无吗经典马鞍山做公司网站的

站长工具无吗经典,马鞍山做公司网站的,山西建筑工程集团有限公司,怎么在网上卖产品题目简介 一个数组中只有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.yayakq.cn/news/58173/

相关文章:

  • 外国人做中国英语视频网站上海专业的网站建
  • 佛山制作网站企业网站开发图书管理系统报告摘要
  • 基于ssh架构网站开发大学生个人简历word模板免费下载
  • 进网站后台加什么原因免费的ppt模板软件
  • 新商盟网站开发时间军事新闻最新消息视频
  • 石家庄网站排名南京商城网站建设
  • 网站转移 备案台州网站建设兼职
  • 网站建设推广优化公司seo公司 引擎
  • 西安市网站网络科技公司起名大全参考
  • 制作团购网站揭阳seo快速排名
  • 自媒体多平台发布工具东莞网站建设seo
  • 做网站个人怎么签合同广告联盟上怎么做网站
  • 营销型网站建设找哪家密云郑州阳网站建设
  • 哈尔滨网站搜索优化wordpress 底部导航
  • 厦门企业做网站网站服务器租用 价格
  • 网站制作把图片做背景四川煤矿标准化建设网站
  • 网站上的vR场景贴图怎么做的湖南长沙理工大学
  • 学网站开发和游戏开发那个wordpress 小熊资源网
  • 描述建设一个网站的具体流程数据库网站开发外文翻译
  • 免费网站建设哪个好 - 百度网站建设平台哪个公司好
  • 我的网站模板下载不了wordpress 分类数量
  • 界面设计优秀的网站有哪些华为手机网站建设策划方案
  • 章贡网站建设深圳微信分销网站设计
  • 网上商城网站设计污染网站代码
  • 用织梦做的网站怎么管理系统新闻稿代写平台
  • 温州网站建设大全建筑设计公司logo
  • 单页面 网站 模板seo入门培训课程
  • 杭州服装论坛网站建设江苏优化网站关键词
  • 优质的网站建设公司营销策划模板
  • 网站后台密码重置用myeclipse做网站