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

安徽水安建设集团网站如何建设游戏平台网站

安徽水安建设集团网站,如何建设游戏平台网站,东莞寮步二手房,三网合一网站建设计划在一个数组中仅出现一次,其他数均出现两次,这个出现一次的数就被称为“单身狗“。 一.一个单身狗 我们知道异或运算操作符 ^ ,它的特点是对应二进制位相同为 0,相异为 1。 由此我们容易知道两个相同的数,进行异或运算得到的结果…

在一个数组中仅出现一次,其他数均出现两次,这个出现一次的数就被称为“单身狗“。

一.一个单身狗

我们知道异或运算操作符 ^ ,它的特点是对应二进制位相同为 0,相异为 1

由此我们容易知道两个相同的数,进行异或运算得到的结果一定为 0,0和非0数字异或的结果为非0数字,因此我们可以将数组中的所有元素都进行异或,出现过两次的数异或结果将为0,留下来的就是单身狗了。

代码实现:

int FindSingle(int* arr,int sz)
{int dog = 0;int i = 0;for (i = 0; i < sz; i++){dog ^= arr[i];}return dog;
}
int main()
{int arr[5] = { 1,4,2,1,2 };int sz = sizeof(arr) / sizeof(arr[0]);printf("单身狗为:%d\n", FindSingle(arr, sz));return 0;
}

二.两个单身狗

如果数列中存在两个单身狗,依然和上面一样全部进行异或运算显然是得不到答案的,相同的数通过异或消除了,得到的会是两个单身狗异或的结果。

能不能将两个单身狗分开,在两个数组中分别以上面的方式找出单身狗呢?

异或的条件是对应二进制位相同为 0,相异为 1。通过两个单身狗数异或的结果,我们可以得到两个单身狗数在某些二进制位上单身狗的值不同(0或1),可以通过这位上的值不同来将两个单身狗分开。

同样,对于出现过两次的非单身狗数,也可以通过判断某一二进制位相同,将其放入同一数组中,再对该数组进行异或运算后消除。

代码实现:

void FindSingle(int* arr, int sz,int* dog,int* dog1,int* dog2)
{int i = 0;for (i = 0; i < sz; i++){//全部异或得到两个单身狗的异或结果*dog ^= arr[i];}//两个单身狗数某二进制位上的值不同int pos = 0;for (i = 0; i < 4; i++){//dog的值为两个单身狗数异或的结果,dog的某一二进制位为1则代表两个单身狗在这一二进制位上不相等//找出这一位置并拷贝下来if (((*dog >> i) & 1) == 1){pos = i;break;}}//将数组按pos位上的值为1或0分组并求异或for (i = 0; i < sz; i++){if (((arr[i] >> pos) & 1) == 1){*dog1 ^= arr[i];}else{*dog2 ^= arr[i];}}
}
int main()
{int arr[10] = { 1,2,3,4,5,1,2,3,4,6 };int dog = 0;int dog1 = 0;int dog2 = 0;int sz = sizeof(arr) / sizeof(arr[0]);FindSingle(arr, sz, &dog, &dog1, &dog2);printf("单身狗1是:%d,单身狗2是:%d", dog1, dog2);return 0;
}

http://www.yayakq.cn/news/894173/

相关文章:

  • 做营销看的网站有哪些内容seo怎么学在哪里学
  • 专做商铺中介网站网络营销代运营服务
  • 网站建设机构培训使用wordpress做网站
  • 清远 网站建设手机网站 案例
  • sharepoint网站制作谷歌关键词搜索排名
  • 牛股大转盘网站建设企业网站内页设计
  • 网站制作建网站什么情况要更新
  • 怎么做网站的外部连接做网站有限公司
  • 青岛营销型网站设计公司项目网络
  • 网站开发 php 书籍 推荐wordpress 自定义widget
  • 铜陵商城网站建设上海货拉拉注册公司地址
  • 南通网站制作计划网站建立需要什么技术
  • 营销网站的建设建网站平台要多少钱
  • 做网站 一年需要多少钱福州网站模板建站
  • 长宁网站制作免费域名注册发卡网
  • 怎么在本地做网站单页网站
  • wordpress 导入网站企业网站国内现状
  • 变更股东怎样在工商网站做公示北京教育网站建设
  • 西凤九网站建设的目标国内四大高端建站公司
  • 乡村建设网站wordpress菜单排序
  • 免费做效果图的网站宜昌优化网站建设
  • 有关网站备案号规则wordpress 视频列表
  • 优质的营销网站建设艺术设计与制作
  • 东莞网站设计制作公司可玩儿小程序代理
  • 我和椅子做游戏小精灵网站不备案的网站很慢
  • 网站内容怎么写有利于排名天津网站seo服务
  • 江苏SEO网站建设宣传片拍摄应急预案
  • 做自己的网站要多久手机如何开发软件
  • 设计师去哪个网站找工作公司网站系统
  • 文章编辑器wordpress连云港seo优化公司