首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
sayhaha
2017-08-31 11:56
已编辑
湖南大学 Java
关注
已关注
取消关注
美团内推一面问题
面试官问了一道题,n个集合去重。 例如有3个集合 {1,2},{2,1},{3} 但其实前两个属于同一个集合,去除重复的,最后输出两个集合{1,2},{3} 当时回答的不好,复杂度很高,各位大神有什么好的方法或解题思路?
注意是集合去重,不是集合中的元素去重。
提示
全部评论
推荐
最新
楼层
Szhazha
西安电子科技大学 C++
我也是这个题目,写了排列,一直在那基础上改,没改出来。后来跟同学讨论,可以认为每个数都有出现和不出现两种可能,所以从第一位递归处理就好了,代码也很简单
点赞
回复
分享
发布于 2017-08-31 00:34
sayhaha
楼主
湖南大学 Java
我当时的想法是大set套小set。小set排序,也就是大家所说的排序,但是这样会打乱原来小集合的顺序。 例如 {3,2,4}, {4, 2, 3}会输出 {2,3,4}。而原集合中没有这个集合。原本题意只是去除元素重复的小集合。 public class test { public static void main(String[] args) { Scanner input=new Scanner(System.in); int n=input.nextInt(); input.nextLine(); Set<Set<Integer>> set=new LinkedHashSet<>(); for(int i=0;i<n;i++){ Set <Integer> subSet=new TreeSet<Integer>(); String strings[]=input.nextLine().split(" "); for(int j=0;j<strings.length;j++) subSet.add(Integer.parseInt(strings[j])); set.add(subSet); } Iterator<Set<Integer>> it = set.iterator(); while(it.hasNext()){ System.out.print(it.next()+" "); } } }
点赞
回复
分享
发布于 2017-08-31 17:33
quqingxiu
重庆大学 算法工程师
遍历每个子集合,计算子集合的总和sum以及个数n,然后拼成键值sum#n,存到Set<String>中。如果下一个集合的键值sum#n在Set中存在,则表示该集合重复。
点赞
回复
分享
发布于 2017-08-31 15:04
海边听风
南京理工大学 Java
使用set集合类来做,先将得到的每个集合排序,然后将排序之后的集合放到set集合中,set集合会将重复的集合去掉,只保留单个不重复的集合。 代码如下: import java.util.Arrays; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.Scanner; import java.util.Set; /* * n个集合去重。 例如有3个集合 {1,2},{2,1},{3} * 但其实前两个属于同一个集合,去除重复的,最后输出两个集合{1,2},{3} * */ public class 集合去重 { public static void main(String[] args) { Scanner input=new Scanner(System.in); int n=input.nextInt(); input.nextLine(); Set<LinkedList<Integer>> set=new LinkedHashSet<>(); for(int i=0;i<n;i++){ LinkedList<Integer> list=new LinkedList<>(); String strings[]=input.nextLine().split(" "); int temp[]=new int[strings.length]; for(int j=0;j<strings.length;j++) temp[j]=Integer.parseInt(strings[j]); Arrays.sort(temp); for(int j=0;j<strings.length;j++) list.add(temp[j]); set.add(list); } System.out.println(set); input.close(); } }
点赞
回复
分享
发布于 2017-08-31 10:30
socialAnimal
龙王山邮电大学 Java
老铁现在有什么好的解法了吗?4楼的方法如何?
点赞
回复
分享
发布于 2017-08-31 10:23
这个世界是棵树
西安工业大学 Java
楼主实在哪个城市面试的?还问了其他什么问题吗?
点赞
回复
分享
发布于 2017-08-31 09:42
已删除
每输入一个集合,new一个HashSet放进去,然后用HashSet<HashSet> hashSets把这些new的HashSet实例都add进去就去重了,不知道这样用集合类符不符合要求。。。
点赞
回复
分享
发布于 2017-08-31 08:52
8点起24点睡
厦门大学 Java
大list包小list,在输入的时候用小list不断接收然后排序,然后!contains判断是否放入,最后返回大list
点赞
回复
分享
发布于 2017-08-31 00:43
OfferOfferOfferOfferOffer
西安电子科技大学 Java
这不是前几天中兴的笔试题吗,定义一个大arraylist<arraylist<integer>>里面包含生成的小的arraylist,这样一个个的去遍历给的集合,大arraylist里面包含有给的集合的其中一个数的,就把集合中不相同的数加进去大arraylist对应的小arraylist里面,遍历的该集合里面的数全部不在的,就心创建一个放进大arraylist里面
点赞
回复
分享
发布于 2017-08-31 00:31
全能
美团_rd
private static void deleteRepectList(ArrayList<ArrayList<Integer>> list) { HashMap<ArrayList<Integer>, Integer> map=new HashMap<>(); for (ArrayList<Integer> arrayList : list) { Collections.sort(arrayList); map.put(arrayList, 1); } for (ArrayList<Integer> arrayList : map.keySet()) { System.out.println(arrayList); } } 感觉复杂度还是够高
点赞
回复
分享
发布于 2017-08-31 00:30
见习精神病
天津财经大学 Java
把集合排序
点赞
回复
分享
发布于 2017-08-31 00:24
orange_fox
华中科技大学 算法工程师
mark 一记 。
点赞
回复
分享
发布于 2017-08-31 00:17
牛客第一菜
********* Java
实现一个toString(),然后hash
点赞
回复
分享
发布于 2017-08-31 00:11
暂无评论,快来抢首评~
相关推荐
05-13 18:20
叮咚买菜_商品运营(准入职员工)
叮咚买菜内推叮咚买菜内推码
前段时间参加了叮咚买菜的面试,现在想和大家分享一下我的经历,希望能给准备面试叮咚买菜的小伙伴一些参考。我应聘的是供应链专员岗位,通过校园招聘投递简历后,很快就收到了面试邀请。面试流程整体推进得比较快,效率很高。一面:是 HR 面,通过电话沟通。首先是让我进行自我介绍,大概 2 - 3 分钟,主要介绍了自己的教育背景、相关实习经历和个人优势。之后,HR 针对我的简历进行了深挖,问了我在实习中参与的具体项目,比如在 [实习公司名称] 实习时负责的供应链优化项目,详细询问了我在项目里承担的角色、遇到的困难以及如何解决的。还问了我对供应链管理的理解,以及为什么选择叮咚买菜这个公司和供应链专员这个岗位。...
点赞
评论
收藏
分享
05-13 18:07
已编辑
杭州电子科技大学 运营
面试时反问这些显得很有"水平"
面试应该反问什么,想必你一定搜过相关经验教程!给大家说说不同的面试场景应该如何反问一、业务面什么叫做业务面?就是问你八股、问你项目、问你实现等等关于业务相关的问题面试,这就是业务面,因此在业务面反问时千万不要问❌:“工资多少钱?”“上下班时间”等等问题,这些还是留着和HR进行沟通,业务面最好问业务相关问题,显得你对业务很感兴趣,提升面试通过率✔我加入团队之后,主要会做哪些事情?业务目标是什么?我想了解一下团队核心的业务目标是什么?你认为这个目标今年在完成情况上会存在哪些挑战?想了解一下你对于这个岗位的产出预期是怎样的?希望这个岗位的能力模型是怎样的?在刚才 面试过程中,你觉得我匹配度是怎样的?...
nxxxn:
oi老登,吾与牛马孰卷
牛客激励计划
面试经验谈
点赞
评论
收藏
分享
04-06 16:59
已编辑
河南工业大学 Java
兄弟们这种公司要去面试吗
公司地址在一个小区里
牛牛牛的牛子:
最好扔了,实在没有选择的选择
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
03-22 21:49
暑期实习肯定找不到了
想从事和硬件相关的工作,简历还欠缺什么,求大佬指点,沉淀半年奋战秋招 #你的简历改到第几版了# #提前批简历挂麻了怎么办# #简历被挂麻了,求建议# #那些拿到大厂offer的简历长啥样# #牛客帮帮团来啦!有问必答#
想吃开封菜的加菲猫练习时长两年半:
其实我觉得本科生来说简历很不错了
你的简历改到第几版了
提前批简历挂麻了怎么办
点赞
评论
收藏
分享
05-12 16:27
4399_产品经理(准入职员工)
4399游戏内推4399游戏内推
4399测试一面面经攒攒人品,求过😭😭介绍一下redis持久化对redis怎么做性能测试redis缓存穿透血崩击穿是什么怎么解决缓存穿透redis怎么设计点赞功能(答了zset)给你一个登录页面,你怎么测试矿泉水瓶有多少种用途对一瓶矿泉水怎么做测试osi七层模型是什么tcp和udp的区别测试相关的学习是课内学的还是课外介绍一下你了解的测试理论有哪些jmeter压测怎么设计接口测试用例如何设计介绍一下你的性格,哪些点契合这个岗位python的基本数据结构🙋🏻4399游戏2025届春招火热招聘中!✅全球领先的中文娱乐平台之一,连续12年中国互联网企业百强前50强 ✅拥有多款亿级流水、百万D...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
Java后端开发需要理解和背的八股文整理
3.8W
2
...
“我想了想,你去哪我都想和你在一起”
1.9W
3
...
5月16日早上莫名被美团捞起来了
1.3W
4
...
记录一下这两个月面试以来遇到的手撕题
1.2W
5
...
搬砖日常。不如跑路
1.2W
6
...
在华为od干的要猝死了
9813
7
...
离开这座让我伤心的城市了💔,希望以后一切顺利吧!#补录# #裁应届生# #捡漏# #minimax#
8604
8
...
大二,想要去实习(计算机专业)
6384
9
...
【双非本】上岸字节后端 | 接单 | 奖学金 | 做自媒体,分享下主包的大学四年 ✨🎓
5168
10
...
得物暑期实习一面面经
4532
创作者周榜
更多
正在热议
更多
#
牛油的搬砖plog
#
29520次浏览
149人参与
#
这些公司卡简历很严格
#
26673次浏览
115人参与
#
一人一个landing小技巧
#
25493次浏览
483人参与
#
大学最后一个寒假,我想……
#
30756次浏览
308人参与
#
正在实习的你,有转正机会吗?
#
371814次浏览
2863人参与
#
写简历别走弯路
#
723579次浏览
7879人参与
#
我在牛爱网找对象
#
180331次浏览
1373人参与
#
运营人求职交流聚集地
#
127998次浏览
962人参与
#
硬件兄弟们 甩出你的华为奖状
#
100540次浏览
675人参与
#
520告白墙
#
23328次浏览
375人参与
#
求职你最看重什么?
#
68037次浏览
381人参与
#
电网笔面经互助
#
31821次浏览
317人参与
#
找工作的破防时刻
#
27889次浏览
420人参与
#
面试被问第一学历差时该怎么回答
#
123368次浏览
769人参与
#
为什么那么多公司毁约
#
163875次浏览
1225人参与
#
运营每日一题
#
67977次浏览
655人参与
#
数字马力求职进展汇总
#
171948次浏览
1454人参与
#
查收我的offer竞争力报告
#
177126次浏览
1082人参与
#
腾讯音乐求职进展汇总
#
86570次浏览
487人参与
#
我发现一个规律
#
3724次浏览
34人参与
牛客网
牛客企业服务