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

网站怎么做架构专门做游戏的网站

网站怎么做架构,专门做游戏的网站,电子商务网站建设与管理相关文献,跑胡子网站开发java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 与运算取末尾1分组 与运算取末尾1分组 解题思路:时间…
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846

文章目录

    • 与运算取末尾1分组

在这里插入图片描述

与运算取末尾1分组

解题思路:时间复杂度O( n n n),空间复杂度O( 1 1 1)
  1. 数组中有两个元素a和b出现1次,剩余都出现2次
  2. 通过异或操作,将出现2次的都抵消掉,获得两个出现一次的数的异或结果a^b
  3. 我们知道a^b的结果是,两者二进制中,值不同的位 = 1,相同的 = 0.
  4. 我们拿到a^b的最右边一个1,也就是a和b最右边的不相同的一位rightOne。也就是说rightOne位置,a的二进制和b的二进制不同,一个1,一个0

获取a的二进制最右边的1的经典操作办法是 rightOne = a & (-a).如果不懂,可以参考下面文章中,与运算的讲解

位运算https://blog.csdn.net/grd_java/article/details/136119268
  1. 既然我们拿到了rightOne。他的二进制形式是整个二进制串,只有一个1,例如0000010000,而这个1的位置,是区分a和b的关键,因为a和b中,只有一个在rightOne的位置是1.而另一个一定是0. 因为a^b后,1的位置代表a和b不同的位置
  2. 这样我们将整个数组分成两组,在rightOne位置为1的,和在rightOne位置为0的
  3. 然后我们对在rightOne位置为1的所有数字,进行异或统计。其中出现两次的数字,二进制不会有什么改变,在rightOne位置的二进制都一样。所以异或过程中,依然会抵消掉。最终结果会剩下出现一次的数字。a和b的一员。这里假设为a。

因为a和b只有一个在rightOne位置是1,这里假设a在rightOne位置是1.而a只出现1次,其它在rightOne位置是1的数都出现两次。异或后都会抵消。最终只剩下a

  1. 这样我们就找到了一个出现一次的数字a。然后我们还有a^b的结果,我们将a^b^a = (a^a)^b = 0^b = b.这样就找到了a和b。返回即可。
代码

在这里插入图片描述

class Solution {public int[] singleNumber(int[] nums) {int eor1 = 0;//对所有数进行异或,最后将剩下两个只出现一次的数for (int num : nums) eor1 ^= num;//两数相同异或为0,不同异或为1// eor1 : a ^ b,a和b的二进制位,如果不同结果就是1// 正负相与,保留最末尾的1int RightOne = eor1 & (-eor1);//提取最右侧的1,表示a和b二进制中,最右侧第一个两者不一样的一位,也就是这一位二进制,a和b不一样。一个在这一位是1,一个在这一位是0int eor2 = 0;//分组,保存所有在这一位是0的数的异或结果。而另一组在这一位是1的异或结果,我们可以不做统计for (int num : nums) {//遍历所有数if ((num & RightOne) == 0) {//如果num在这一位是0,而RightOne在这一位肯定是1,相与的结果必然是0,而其它位rightOne都是0,所以最终整个二进制结果一定是0eor2 ^= num;//将其进行异或,最终出现两次的都会抵消,而一定会遇上a和b中这一位是0的那个,假设是a,然后eor2 = a}}return new int[] { eor2, eor1 ^ eor2 };//eor1 = a^b 假设eor2 = a.则eor1 ^ eor2 = a ^ b ^ a = b }
}
http://www.yayakq.cn/news/721448/

相关文章:

  • 鞍山市住房和城乡建设网站外网如何查看局域网建设的网站
  • 公司网站维护费怎么做分录网页设计与制作教程ppt
  • 购物网站创建怎么做自己的品牌网站
  • 烟台网站建设方案报价宣讲家网站 家风建设
  • 网站站点app界面设计模板一套
  • 和县网站建设做网站百度
  • 如何做推广麦当劳的网站个人简介代码网页制作模板
  • 克州seo整站排名网络服务公司名称
  • 一个完整网站开发需要什么技术网上做网站的
  • 设计一个网站重点是什么湖北建设注册中心网站首页
  • 呼和浩特网站制作 建设wordpress基本教程
  • 个人网站可以挂广告吗百度不收录的网站
  • 成都 网站 建设装饰网站
  • 网站开发设计报告怎么写歌曲推广平台有哪些
  • wordpress 用iis建站手机推广软文
  • 淘宝客可以自己做网站推广吗重庆seo怎么样
  • 自助建站系统开发宁波市环境建设保护局网站
  • 宿迁网站建设价格低做网站模板和服务器是一样的吗
  • 高端响应式网站博物馆网站建设情况
  • 怎么学做淘宝免费视频网站贵州软件开发 网站开发
  • 中邮通建设咨询有限公司官方网站网页设计代码模板适应手机界面
  • 西安网站设计开发做网站的标性
  • 做网站公司 陕西渭南软件公司做网站
  • 建设一个网站要花多少时间专业做蛋糕视频网站
  • 如何进入网站后台 被黑微信微网站怎么进入
  • 商城和营销型网站建设logo免费设计图案
  • 找装修公司的网站免费关键词排名优化
  • 静态网站网线制作实训报告心得体会
  • 腾讯风铃做的网站有期限吗佛山模板建站定制网站
  • 功能性的网站设计制作织梦网如何把做网站的删掉