首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
10-01 15:52
Université d’Auvergne-Clermont-Ferrand 1 C++
学c++ cpp是不是不太好进互联网大厂,岗位比较少啊
前言昨天直播答疑的时候,有同学提出了个疑惑“C++好像不太好进互联网大厂吧,学历不顶的话[捂脸][捂脸][捂脸]”首先我们要理解清楚,为什么要进大厂。无非就是福利好,薪资高。那我们可以针对编程工作,给高薪的公司归类列举下,再看看cpp对应的高薪工作少吗说明(1)传统互联网公司,那些耳熟能详的bat。这些公司cpp岗位相比较确实少,事实无法改变。因为他们主要就是搞后端这些的。如果有cpp岗位也是基架岗位或者对应的嵌入式产品岗位。(2)新能源:理想 moment 地平线……(3)嵌入式 :大疆……(4)机器人:宇数科技、具身智能类的公司……(5)芯片:高通、英伟达…………………………但是上面2、3...
我的岗位说明书
点赞
评论
收藏
分享
10-03 15:17
已编辑
西京学院 C++
长川科技-一面-c/c++软件开发
📍面试公司:长川科技🕐面试时间:2025.9💻面试岗位:c/c++软件开发❓面试问题:1、项目,遇到哪些困难2、class, struct3、map, vector,list数据结构4、gdb, 程序崩溃如何调试5、多线程6、常用ide,编译器7、值传递,引用传递🙌面试感想:可以
查看7道真题和解析
点赞
评论
收藏
分享
08-22 17:06
已编辑
门头沟学院 Java
求指点!
民本准大四这样的简历可以吗,项目其实就是烂大街的苍穹+点评,我目标是能找个小厂实习就够了,简历这样够吗#
程序员小白条:
没亮点,纯看运气了,海投吧
点赞
评论
收藏
分享
09-30 15:18
腾讯_项目经理(实习员工)
关于多益网络!!我有话说
说实话,我无话可说
点赞
评论
收藏
分享
10-01 11:33
南京邮电大学 硬件开发
歌尔股份硬件技术研发岗面经
1 自我介绍 2 有没有硬件开发相关的知识 3 深挖简历,介绍项目 4 问项目里画过的板子,选型layout 5 flash 用的什么类型,用什么协议,spi、usb2.0用哪几根线,usb 的我忘记了其实就 D+和 D- 6 Ldo 和 dcdc 的区别,有什么理解 7 信号阻抗有什么理解 8 232 和 485 有什么理解 9 单片机外接屏幕通过什么传输
查看9道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
秋招一周年回过头看,庆幸自己放弃大厂选择体制内
408
2
...
字节OR美团
253
3
...
中科曙光嵌入式面经
150
4
...
秋招看重什么? 大家来做做优先级排序吧
71
5
...
小时候最想当的是很酷的店长
65
6
...
可以年前面试年后入职吗?
65
7
...
不提前实习就不给offer的公司要去吗?
56
8
...
牛可乐国庆旅行篇-西湖
53
9
...
租房一定要看一度电费和有没有冰箱
52
10
...
26届秋招-双非进场时机
52
创作者周榜
更多
正在热议
更多
#
你的实习什么时候入职
#
306686次浏览
2122人参与
#
牛油的搬砖plog
#
112706次浏览
817人参与
#
携程求职进展汇总
#
640725次浏览
4660人参与
#
金融财经春招备战日记
#
30544次浏览
166人参与
#
制造业的秋招小结
#
116565次浏览
1972人参与
#
招聘要求与实际实习内容不符怎么办
#
130110次浏览
824人参与
#
深信服秋招来了
#
272732次浏览
2905人参与
#
你朋友圈最大的人脉是谁?
#
22900次浏览
145人参与
#
如果没找到工作,考公是你的退路吗
#
49942次浏览
398人参与
#
工作两年想退休了
#
164424次浏览
1422人参与
#
什么样的背景能拿SSP?
#
113472次浏览
404人参与
#
26届的你,投了哪些公司?
#
194179次浏览
1191人参与
#
非技术er求职现状
#
102462次浏览
672人参与
#
校招入职后的感受
#
379794次浏览
3224人参与
#
如何快速融入团队?
#
33772次浏览
280人参与
#
你在职场中沾染到的“坏”习惯
#
22538次浏览
145人参与
#
你做过哪些dirty work
#
18992次浏览
139人参与
#
听到哪句话就代表面试稳了or挂了?
#
216499次浏览
1586人参与
#
大学四年该怎么过,才不算浪费时间?
#
13793次浏览
80人参与
#
国庆假期,给大脑放个假
#
6060次浏览
50人参与
#
如果公司降薪,你会跳槽吗?
#
98245次浏览
632人参与
#
你小时候最想从事什么职业
#
124426次浏览
1924人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务