首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
12-17 18:04
门头沟学院 Java
秋招结果一览
秋招offer: 双9无实习京东offer 双非本9硕无实习招银网络offer 2本9硕非科班科大讯飞offer 双非本2硕小厂实习招银云创offer、收钱吧offer 2本9硕无实习联通数科offer 2本9硕非科班无实习小鹅通offer、新华三offer 本硕双2无实习满帮offer 9本无实习金证offer 9本海硕无实习携程sp、小红书offer、群核科技offer、途虎ssp、科大讯飞ssp 2本无实习梧桐车联offer 2本9硕非科班小厂实习招银云创offer、东软offer 9本华五硕无实习招银网络offer、小米offer 9本无实习卓望数码offer、帆软最高档sp、老虎国际...
点赞
评论
收藏
分享
12-15 14:09
门头沟学院 Web前端
京东一面
尊嘟是太幸运啦,遇到一个超级好的面试官,一直带着笑意,就像是闲聊一样面试官先是自我介绍,然后介绍了部门情况,甚至介绍了团队的招聘计划自我介绍秋招快要结束了为什么还在参加面试目前有拿到offer吗实习公司为什么没有转正哪里人实习期间遇到的最大的挑战、有没有具体的case技术栈为什么vue2升级到了vue3列表数据修改没有确认表格就发生了变化,为什么,怎么解决登录页面是如何设计的用户反复点击应该怎么做防抖是怎么实现的防抖和节流的区别如果有一个对象a,里面有一个属性userName为aaa,b=a,b中有userName吗,有的话值是什么如果把userName='bbb',a中userName变了吗...
查看16道真题和解析
点赞
评论
收藏
分享
11-15 17:16
广东海洋大学 全栈开发
双非嵌入式简历求拷打
加入两年实验室,拿了数个国奖,听从师兄的建议独立开发了两个项目。以为能比较轻松的找到好工作,但是boss上大部分都是已读不回。有面试但是也是小厂的,不甘心去,想要中大厂title,我这个简历还有机会吗😭😭😭,求拷打,还有在准备面试的这段时间应该去做什么😢😢
专业嗎喽:
本科你还没实习基本大厂别想了, 一般是学历大于实习大于竞赛大于其他 找到薪资高,加班少的先干,后面再跳社招
简历中的项目经历要怎么写
点赞
评论
收藏
分享
11-22 22:12
门头沟学院 Java
双非鼠鼠至今颗粒无收
已经开始转golang了
蚂蚁求职进展汇总
点赞
评论
收藏
分享
12-13 20:23
广州大学 golang
第一次见比特鹰这样的公司
交笔试题当天 HR 就通知第二天可以来线下面试了,这公司效率可以的,我从深圳过去他们还报销来回车费,这点格局比较大。到了园区 HR 已经在门口等我了,没有直接去面试,先带我在办公园区转了一下,这边环境我还比较喜欢,是那种生态园区,比我之前待的那个办公楼好多了,看着气派实则坐血牢,非常闷而且没地方透气。然后就是和二面面试官 Solo 了,主要就是问项目,还好哥们都是自己实打实干出来的,不然真的会被问穿,说实话有点冒汗,还是准备的不够充分。二面完我等了 5 分钟,直接就 BOSS 面了,这一面基本是什么都聊、什么都问,老板人挺好的,和他聊了一个多小时,给了我很多靠谱的建议,受益匪浅。我问了进公司以...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
2025,收获良多的一年
4322
2
...
“我希望你把我当成资源,而不是老师。”
3740
3
...
2025年度总结-成长
3473
4
...
2025这一年真是辛苦了
3357
5
...
我从反复确认,走向不再自证
3180
6
...
数字马力
3084
7
...
双非鼠鼠0实习0竞赛闯秋招的一年,重头再来我不会选这条路了
2476
8
...
突然被同事表白了
2170
9
...
留痕
2113
10
...
百度日常一二面面经已OC
2044
创作者周榜
更多
正在热议
更多
#
实习简历求拷打
#
5574次浏览
67人参与
#
你会为了工作牺牲生活吗?
#
66721次浏览
454人参与
#
秋招被挂春招仍然能投的公司
#
4934次浏览
81人参与
#
考研失败就一定是坏事吗?
#
198868次浏览
1355人参与
#
什么是优秀的实习经历
#
6725次浏览
191人参与
#
为了求职,我做过的疯狂伪装
#
75398次浏览
763人参与
#
mt对你说过最有启发的一句话
#
29759次浏览
365人参与
#
牛友们,签完三方你在忙什么?
#
128638次浏览
981人参与
#
摸鱼被leader发现了怎么办
#
96444次浏览
619人参与
#
巨人网络工作体验
#
71069次浏览
502人参与
#
你今年的保底offer是哪家
#
154492次浏览
670人参与
#
秋招特别不鸣谢
#
13536次浏览
169人参与
#
你投递的公司有几家约面了?
#
153787次浏览
990人参与
#
第一次面试
#
1035443次浏览
13679人参与
#
今年秋招你收到了多少封邮件?
#
16583次浏览
216人参与
#
工作中遇到的歹人
#
24492次浏览
286人参与
#
选实习,你更看重哪方面?
#
11458次浏览
202人参与
#
携程求职进展汇总
#
837899次浏览
5500人参与
#
滴!实习打卡
#
749083次浏览
6762人参与
#
毕业论文进行时
#
20440次浏览
128人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务