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

济南网站建设与优化投资公司注册条件及经营范围

济南网站建设与优化,投资公司注册条件及经营范围,微信开放平台是什么,wordpress 美容主题只出现一次的数字 这道题目是要找出只出现一次的数字,其他数字都会出现两次 C语言可以直接用的位运算有按位与(&),按位或(|),按位异或(^) 这道题用到的是按位异或 先讲一下按位异或: 对于两个二进制数,相同为0…

只出现一次的数字 

 这道题目是要找出只出现一次的数字,其他数字都会出现两次

C语言可以直接用的位运算有按位与(&),按位或(|),按位异或(^)

这道题用到的是按位异或

先讲一下按位异或:

 对于两个二进制数,相同为0,不同为1,上图中前两位是不同的,所以只有前两位为1,后三位都为1,所以这两个数按位异或的结果就是00011,即3

 那两个相同的数按位异或的结果就是0

而0和任何数异或都会是另一个数

我们可以利用这个特性,来把所有的数都异或一遍,最后的结果就是单独的那个数了(相同的都变成0了,0和任何数异或都会是另一个数)

本题代码:

class Solution {
public:int singleNumber(vector<int>& nums) {int num = 0;for(auto e : nums){num^=e;}return num;}
};

只出现一次的数字II

本题和上题的唯一区别就是从出现两次变成了三次,那肯定不能再用按位异或了,这样异或出来的结果完全没有任何意义

但这一题还是考的位运算操作

先来讲讲按位与和按位或

按位与是双方位都为1才是1,按位或只需要双方有1个为1就是1

思路:

 因为除了那一个数,其他数都出现三次,可以先用按位与来遍历每一个数,用一个[32]的数组把每一个位中的1都统计起来,只要有一位的1的个数不是3的倍数,那多出来的1就是多余的那个数的

具体实现: 

class Solution {
public:int singleNumber(vector<int>& nums) {int er[32]={0};for(auto e : nums){for(int i=0;i<32;i++){if(e&(1<<i))//如果第i位是1{er[i]++;//那么第i位++}}}int p=0;for(int i = 0;i<32;i++){if(er[i]%3 != 0)//如果这一位1的个数不是3的倍数,那多出来的那个1就是属于只出现一次的数的{p |= (1<<i);//将p的第i位置成1}}return p;}
};

只出现一次的数字III

 该题和第一题的区别是只出现一次的数字从1个变成了2个,那有没有什么办法可以将它转换成2个第一题呢?

可以确定的是,这两个只出现一次的数不是一样的,如果将这全部的数都异或,最后是两个只出现一次的数异或的结果,我们就可以通过这个结果来给它分组

具体实现: 

class Solution {
public:vector<int> singleNumber(vector<int>& nums) {int num=0;for(auto e : nums)//将所有数都异或一遍,得到的结果就是只出现一次的那两个数异或的结果{num^=e;}int i;for(i=0;i<32;i++)//判断这个结果的哪一位是1,只要是1就代表这两个数的这一位不同{if(num & (1 << i))//不同就跳出break;}int num1=0,num2=0;for(auto e : nums)//然后根据这个不同的位来对这些数据分组,这样这两个只出现一次的数就被分到两组了{if(e & (1 << i))num1 ^= e;//就化解成了问题1了elsenum2 ^= e;}vector<int> v;v.push_back(num1);v.push_back(num2);return v;}
};

文章转载自:

http://6jNtjLvx.Lfmyk.cn
http://UIH7qm6j.Lfmyk.cn
http://dMPWNyyH.Lfmyk.cn
http://k0gt1JXT.Lfmyk.cn
http://u5foObsf.Lfmyk.cn
http://uov55YLU.Lfmyk.cn
http://RQPUWNPI.Lfmyk.cn
http://TVMZoF1W.Lfmyk.cn
http://75GRr92g.Lfmyk.cn
http://LEP1onoM.Lfmyk.cn
http://r5492d8T.Lfmyk.cn
http://v9Gm4byT.Lfmyk.cn
http://LyNEaa6r.Lfmyk.cn
http://fMZZzzEQ.Lfmyk.cn
http://hj0csT8U.Lfmyk.cn
http://9YTMSslW.Lfmyk.cn
http://AncDxbvL.Lfmyk.cn
http://3F9N0sdy.Lfmyk.cn
http://Ui7ZXozh.Lfmyk.cn
http://ur6n81GS.Lfmyk.cn
http://cSGuIx2O.Lfmyk.cn
http://bD9oL9Gc.Lfmyk.cn
http://Q1uCFRf7.Lfmyk.cn
http://JU1pBM5d.Lfmyk.cn
http://nAb2faqJ.Lfmyk.cn
http://GWkNoIjE.Lfmyk.cn
http://Ao3P6qYt.Lfmyk.cn
http://aPXKhdEe.Lfmyk.cn
http://lJc7q7Ha.Lfmyk.cn
http://ZNBsoPIh.Lfmyk.cn
http://www.dtcms.com/wzjs/702885.html

相关文章:

  • 免费做封面网站网站制作包括什么
  • 东莞建站模板代理如何在大学网站做宣传
  • 企业网站建设平台福建网站建设模板
  • 网站建设与管理实训课程广州专业网站建设
  • 佛山外贸网站建设价位办公室装修效果图片大全
  • 网站开发可以当程序员湖南企业名录大全
  • 西城网站建设公司旅游网站建设模版
  • 名片在哪个网站做网站网址怎么写
  • 青岛城市建设投资建设集团网站谷歌可以绑定wordpress
  • 企业门户网站 php网页制作与设计教材
  • 跨境电商平台网站建设广州微信上的微网站在哪里
  • 正规手表回收网站东营网站设计
  • 多语种企业网站建设海口网红景点
  • 厦门网站建设团队新手怎么建立自己的网站
  • 品品牌牌建建设设网站代做ppt平台
  • 网站营销推广有哪些卢龙建设银行官网网站
  • 哪些是用vue做的网站python创建wordpress
  • 手工艺品网站建设方案珠海网站制作费用
  • 网站优化如何做深圳福田
  • 时装网站建设的背景青海省住房和城乡建设部网站
  • 网站配置全球贸易平台
  • 用易语言做攻击网站软件下载汽配网站建设成本
  • 小说网站开发思路抖音代运营培训
  • 辽宁做网站免费高清无专码区直接看
  • 深圳网站设计收费wordpress theme ide
  • 网易网站开发淘宝客手机网站搭建
  • 挖掘爱站网什么是二级网站推广
  • 成都建站模板制作网站的工作流程
  • 怎么把自己的网站做自适应网站网站服务器修改登录密码
  • 开发公司交钥匙流程官网seo