博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-Single Number III-260
阅读量:4560 次
发布时间:2019-06-08

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

输入一个数组,其中除了两个数只出现一次外,其余的数均出现两次,找出只出现一次的数

一个系列http://www.cnblogs.com/0summer/p/5830714.html

这类题都可用multiset来做,时间ON,不过空间也是ON

既然题目要求空间O1,说明肯定有规律

本题同样位运算,设结果为a,b

1.全部异或得到x

2.x肯定就是只出现一次的两个数的异或,而且二进制位为1的就是这两个数在二进制上不一样的

3.随便找一个x中二进制位为1的,将数组分为两部分,则a,b肯定在不同的两组,问题就转换成了一个数组中只有一个数出现一次,其余出现两次,所以两组内异或得到a,b

1 class Solution { 2 public: 3     vector
singleNumber(vector
& nums) { 4 int len=nums.size(); 5 vector
v; 6 if(len<2) return v; 7 int tmp=0; 8 for(int i=0;i

 

转载于:https://www.cnblogs.com/0summer/p/5830756.html

你可能感兴趣的文章
【2019-09-28】少,但更好
查看>>
【2019-09-13】耐心观察是一种技能
查看>>
mysql数据库2-常用命令
查看>>
安卓开发环境搭建(转)
查看>>
英语学习一周年
查看>>
set容器
查看>>
python基础学习目录
查看>>
微软必应地图加载错误:Uncaught TypeError: Microsoft.Maps.Location is not a constructor
查看>>
卷积神经网络是如何工作的(译文)
查看>>
微信开发 笔记1
查看>>
SQL server 删除日志文件 秒删
查看>>
MethodChannel 实现flutter 与 原生通信
查看>>
lua的性能优化
查看>>
vs2012 出现断点无法命中 解决方案。
查看>>
weex图片加载更多方法loadmore的使用
查看>>
创建您的 ActiveReports Web端在线报表设计器
查看>>
项目复审
查看>>
FreeMarker学习
查看>>
hihocoder 1631
查看>>
2018大都会赛 A Fruit Ninja【随机数】
查看>>