260. Single Number III
来源:互联网 发布:域名申请步骤 编辑:程序博客网 时间:2024/05/18 23:26
leetcode 260
Given an array of numbers nums
, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.
For example:
Given nums = [1, 2, 1, 3, 2, 5]
, return [3, 5]
Note:
- The order of the result is not important. So in the above example,
[5, 3]
is also correct. - Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
数组nums中所有的数异或的结果res为只出现一次的两个数的异或值,res二进制的各个位中第一个为1的位置(由于1^0=1),这两个数一定是一个是1一个是0。所以根据这一位置是1还是0可以将数组nums划分成两组,分别在每一组中对所有数进行异或,即可得到要求的两个数。代码如下:
class Solution {public: vector<int> singleNumber(vector<int>& nums) { int res[2];res[0]=0;//保存数组中所有数的异或结果for(int i=0;i<nums.size();i++)res[0]=res[0]^nums[i];int mark=1;//非0位是异或结果中第一个1出现的位置for(i=1;i<=32;i++){if((res[0]&mark)==mark)break;mark=mark<<1;//当前第i位上非1,则进入下一次循环看第i+1位是否为1}//清零分别保存两组的异或结果res[0]=0;res[1]=0;for(i=0;i<nums.size();i++){if((nums[i]&mark)==mark)res[0]=res[0]^nums[i];elseres[1]=res[1]^nums[i];}vector<int> v(res,res+2);return v; }};
0 0
- 260.Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- 260. Single Number III
- Mysql客户端的限制,只能接受gbk码,utf8不支持,数据库是支持的
- 上涨中继和下跌中继
- Bootstrap 布局组件
- android-BluetoothAdapter.LeScanCallback
- PHP+jQuery+Ajax实现用户登录与退出
- 260. Single Number III
- 7.各种时间函数的使用
- leetcode233. Number of Digit One
- JSP学习笔记之一
- 胡汉三又回来了。。
- ORACLE删除某用户下所有对象
- QT中SIGNAL与SLOT连接的几种方式
- Codeforces Beta Round #95 (Div. 2) -- D. Subway (DFS)
- 一种高效的 vector 四则运算处理方法