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

怎么样免费创建网站重庆seo海洋qq

怎么样免费创建网站,重庆seo海洋qq,如何做网络投票网站,wordpress日志和文章前提: 异或操作符合交换律,结合律(因为其根本上来抽象理解,就是查看所有项二进制数相同位是否有奇数个1,对运算结果二进制数而言,没有该位为0,有该位为1,与顺序无关)。 …

前提:

异或操作符合交换律,结合律(因为其根本上来抽象理解,就是查看所有项二进制数相同位是否有奇数个1,对运算结果二进制数而言,没有该位为0,有该位为1,与顺序无关)。

任何数与零进行异或,结果仍是他自己

两个相同的数进行异或操作,结果为零(自反性

如下实现数值交换代码

public void swap(int[]arr,int x,int y){//用异或运算做交换arr[x]=arr[x]^arr[y];arr[y]=arr[x]^arr[y];arr[x]=arr[x]^arr[y];}

该操作不需要再开辟另一块内存空间去进行数值交换

但是注意交换数值双方指向内存必须是两块独立的内存(相同值没问题,相同内存不行)

如上如果,x,y指向同一块内存,第一次异或使arr[x]指向内存存储的数变为0,与此同时,由于arr[y]与arr[x]指向同一块内存,arr[y]也变为0,那么后面两次异或没有意义,原先存储的数丢失了。

问题解决实例:在一堆数中只有一个数出现了奇数次,查出这个数

对所有数进行异或运算,那么最后的结果将是该出现奇数次的数

public int getTheOneNumber(int[] arr){int number=0;for (int i : arr) {number = number^i;}return number;}

那如果是一堆数中有两个数出现了奇数次,其他都出现了偶数次,如何找出这两个数

这是我们如果依然对这一堆书进行异或运算,那我们将得到这两个数异或的结果

为了方便,我们把这两个数称为x,y, 我们现在得到eor=x^y 

x,y一定不相同,那么eor值不为0;

所以,x,y的二进制数一定存在一位或多位,一个为1一个为0的情况

那么我们接下来取出eor最右侧的1(假设该位是第i位)(取数方法eor取反加一在于eor做与运算),所有数与该数做与运算将所有数分为i位上为1的数和i位上为零的数,x,y因此被分开,分开后另使同为1(0)的数异或得到x(y)

x(y)与eor异或得到y(x)

   public int[] getTwoNumber(int[] arr){int eor=0;for (int i : arr) {eor^=i;}int number = (~eor+1)&eor;int eor2=0;for (int i : arr) {if((number&i)!=0){eor2^=i;}}eor = eor2^eor;int[] goal = {eor,eor2};return goal;}

http://www.dinnco.com/news/87521.html

相关文章:

  • 石家庄网站建设电话搜索引擎优化的目标
  • 怎么建立本地网站seo+网站排名
  • 然后做网站网站制作软件
  • 厦门做网站公司最新小组排名
  • 网站开发课程意见和建议百度推广云南总代理
  • 新网站 被百度收录软件开发流程
  • 国内做外贸的平台有哪些网站优化是做什么的
  • 做包装的网站网络营销推广的方式
  • 黄石做网站的什么是搜索引擎销售
  • 房地产手机端网站建设深圳优化seo
  • 宁德工程建设监督网站网店推广方式有哪些
  • 网站制作属于什么品牌seo排名优化点击软件有哪些
  • 网络规划设计师专项提升百度关键词优化公司哪家好
  • 如何申请小程序账号seo是什么意思啊
  • 无锡网站制作启航好seo站长工具平台
  • discu论坛网站模板北京快速优化排名
  • 网站备案信息更改审核要多久徐州seo排名公司
  • php动态网页作业优化设计单元测试卷
  • 提供营销网站建设公司吴中seo页面优化推广
  • asp.net网站开发教程 pdf网站推广软件哪个最好
  • 昆明做网站哪家好百度网盘网页版登录入口官网
  • 有免费做海报的网站吗河南制作网站
  • 网站制作成功后怎么使用宣传平台有哪些
  • 银川做企业网站产品软文撰写
  • 做商城网站买多大的空间网站竞价推广
  • 商品推销关键词优化seo费用
  • 上海专业网站建设公seo数据优化
  • 网站建设目标责任软文推广营销服务平台
  • 网站建设服务好怎样在网上做宣传
  • 做招聘和求职都需要哪些网站最近几天的新闻