【剑指OFFER】56 - II. 数组中数字出现的次数 II
发布日期:2021-06-29 19:47:16
浏览次数:3
分类:技术文章
本文共 1149 字,大约阅读时间需要 3 分钟。
题目:在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
示例 1:
输入:nums = [3,4,3,3]
输出:4示例 2:
输入:nums = [9,1,7,9,7,9,7]
输出:1限制:
1 <= nums.length <= 10000
1 <= nums[i] < 2^31答案:
解法一:class Solution { public int singleNumber(int[] nums) { //(不重复的和 - (总和-不重复的和)/ 2) long sum1 = 0, sum2 = 0; Setset = new HashSet<>(); for(int n : nums){ set.add(n); sum1 += n; } Iterator i = set.iterator(); while(i.hasNext()){ sum2 += (int)i.next(); } return (int)(sum2 - ((sum1 - sum2) / 2)); }}
解法二:
class Solution { public int singleNumber(int[] nums) { //Stream的效果就像上图展示的它可以先把数据变成符合要求的样子(map),吃掉不需要的东西(filter)然后得到需要的东西(collect)。 return IntStream.of(nums) .boxed()//装箱 .collect(Collectors.groupingBy(s -> s))//分组 .entrySet()//entrySet实现了Set接口,里面存放的是键值对。一个K对应一个V。用来遍历map的一种方法 .stream()//流 .filter(it -> it.getValue().size()<=1)//过滤 .findFirst()//找到第一个元素 .get()//获得该元素 .getKey();//获得该元素的值 }}
转载地址:https://darkness.blog.csdn.net/article/details/115616552 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月07日 21时56分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
jQuery控制页面滚动条上下滚动
2019-04-30
jquery.append
2019-04-30
jquery滚动到顶部
2019-04-30
js图片向下流动
2019-04-30
sqlserver-stuff
2019-04-30
Ext.store.load callback
2019-04-30
IIS 配置 HTTPS
2019-04-30
Task.Factory.StartNew(() =>{})
2019-04-30
WPF内嵌网页的两种方式
2019-04-30
DevOps 什么是 CI/CD?
2019-04-30
Windows服务创建及发布
2019-04-30
windows10 iis浏览wcf报404.3错误
2019-04-30
tsql获取sqlserver某个库下所有表
2019-04-30
在线数据库关系图工具
2019-04-30
ppt thinkcell-Thinkcell: 一款强大的专业图表制作工具
2019-04-30
在线关系图工具
2019-04-30
在外租房子,切记九点
2019-04-30
C#站点检测
2019-04-30
Nginx+IIS简单的部署
2019-04-30
OAuth 2.0 的四种方式
2019-04-30