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

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

题意:类似之前的有一道题,这次是一个数组中所有数字都出现三次,唯独有一个不是,找出这个数字。

思路:懵了,按位异或对出现两次可以很好的解决问题,但是三次就直接废了。想半天没办法,看到讨论区里别人的一个解法超级简单,就是用set存一下这个数组,都变成了只出现一次的数字,整体求和乘3,减去原数组的和乘3的结果,剩下的就是我们要找的那个数的两倍了,除2得出结果。

但是我并不想这么简单的搞定这个问题,通过他的方法给我的启发就是再次利用起set这个容器,我发现set有一个count的函数,是用来统计容器中某个数字出现的次数,但是搞笑的是set的特点是让每个数字只出现一次。然而,转机来了,set有个好兄弟叫multiset,这个容器跟set几乎一样只是它允许数字出现多次,同时也有count这个函数,问题解决。

代码

int singleNumber(vector
& nums) { multiset
s(nums.begin(),nums.end()); multiset
::iterator i; for(i = s.begin();i!=s.end();i++) { if(s.count(*i)!=3) { return *i; break; } }}

 

转载于:https://www.cnblogs.com/puyangsky/p/4646816.html

你可能感兴趣的文章
机器学习A-Z~支持向量机
查看>>
centos系统大量time wait占用的解决
查看>>
vue源码分析系列之响应式数据(三)
查看>>
Nginx服务系列——负载均衡
查看>>
力扣(LeetCode)21
查看>>
flac格式歌曲如何转换成mp3格式,flac转mp3详细图文教程
查看>>
微服务应用新趋势:Service Mesh、AIOps和中台化
查看>>
执行计划小总结
查看>>
再一次深入了解react的生命周期
查看>>
Python基本数据类型之列表
查看>>
Canvas 文本转粒子效果
查看>>
JDBC
查看>>
优化体系结构 - 解决多样性数据源
查看>>
Vue中data和computed的区别
查看>>
心如止水•精读:『批判性思维』- 让讨论持续进行的七大方法
查看>>
区块链信任机制都有哪些“?
查看>>
css居中总结
查看>>
Vagrant (二) - 日常操作
查看>>
上线清单 —— 20 个 Laravel 应用性能优化项
查看>>
深入解读MySQL8.0 新特性 :Crash Safe DDL
查看>>