博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer 66题 -- 数组中只出现一次的数字
阅读量:6540 次
发布时间:2019-06-24

本文共 722 字,大约阅读时间需要 2 分钟。

class Solution {

public:
void FindNumsAppearOnce(vector<int> str,int* num1,int *num2) {
  int exclusiveOr =0;
  for(int i=0; i< str.size(); ++i)
  {
    exclusiveOr ^= str[i];
  }
  
  unsigned int indexOf1 = getFirstBitOne( exclusiveOr );
  for(int i=0; i<str.size(); ++i)
  {
    if( isBit1(str[i], indexOf1) )
      *num1 ^= str[i];
    else
      *num2 ^= str[i];
  }
  return;
  }
  unsigned int getFirstBitOne( int num)
  {
    unsigned int indexBit=0;
    while( 0 ==(num&1) && indexBit <= 8*sizeof(int))
    {
      ++indexBit;
      num = num>>1;
    }
    return indexBit;
  }

 

  bool isBit1(int num, int bit)

  {
    num = num >> bit;
    return (num&1);
  }

};

转载于:https://www.cnblogs.com/shewell/p/6527650.html

你可能感兴趣的文章
Zeppelin Prefix not found.
查看>>
linux 的网络设置
查看>>
首届“欧亚杯”象翻棋全国团体邀请赛圆满收评!
查看>>
编译tomcat
查看>>
oracle-xe手工创建数据库
查看>>
我的友情链接
查看>>
UG中卸载被占用的DLL
查看>>
eclipse 设置注释模板详解,与导入模板方法介绍总结
查看>>
Cocos2d-x3.2 文字显示
查看>>
mongodb group
查看>>
session_start()放置位置的不正确引发的ROOT常量 未定义的错误
查看>>
如何设定VDP同时备份的任务数?
查看>>
ipsec的***在企业网中的经典应用
查看>>
过来人谈《去360还是留在百度?》
查看>>
mysql备份工具innobackupex,xtrabackup-2.1安装,参数详解
查看>>
本地Office Project计划表同步到SharePoint2013任务列表的权限问题
查看>>
Windows2008 R2 GAC权限问题
查看>>
洛谷——P1469 找筷子
查看>>
springboot项目自定义注解实现的多数据源切换
查看>>
特此说明
查看>>