首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
01-06 19:50
小红书_社区_前端
小红书前端实习,部门直招,base上海
我又来了~真内推,面试官直接筛简历,简历通过最快隔天面试,只需两面。福利:- 每月300积分免费零食- 免费三餐部门介绍:安全风控平台部小红书安全风控平台部主要负责公司内容安全、业务风控、信息安全的平台建设和风险管理工作。我们通过Al算法、大数据、情报攻防和终端安全等多领域交叉技术建设安全风控平台,为数亿小红书用户提供安全健康的社区环境,同时保障电商、直播等业务的健康发展。任职要求:1、本科及以上计算机相关专业2、热爱前端工作,掌握 HTML5、CSS3、JavaScript/TypeScript 等前端技术,熟悉 Vue/React、NodeJS、Vite、Webpack 等前端常用框架和类...
点赞
评论
收藏
分享
01-04 23:05
武汉大学 Java
20260104【拼多多】面试算法真题(共1题)
题目1:跳跃游戏
点赞
评论
收藏
分享
2025-11-27 12:05
门头沟学院 Java
懂了...大厂是个给我发钱的大学
来美团快半年了,真的感觉像在上学,还是带薪的那种。每个新人都有导师带,从业务到技术,手把手教。遇到问题随时问,导师还会主动约一对一,分享经验和方法论。而且学城太实用了,项目文档、技术方案、踩坑经验,想查什么都有,比大学图书馆还全。最舒服的是团队氛围,同事之间很友好,有问题大家都会帮忙,没有那种冷冰冰的感觉。每天上班就像去学校,还能拿工资,这感觉真的不错
牛马人的牛马人生:
大厂干一年比得上大学生涯
美团公司福利 3020人发布
点赞
评论
收藏
分享
2025-12-10 19:36
湖北工业大学 Web前端
简历没发就被拒了为啥啊
饿魔:
看到在线简历了吧
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
🔥2026创作新起点:《新年启航计划》来袭,三大赛道等你来冲!
2.2W
2
...
一大波手撕正在靠近!
1.7W
3
...
百度java一面 28届的第一次大厂面试 感觉g了
4968
4
...
27前端鼠鼠快手二面
3489
5
...
腾讯游戏后端一面
3449
6
...
拥抱人机共生,锻造不可替代的“金头脑”
3336
7
...
面试手撕题总结
3164
8
...
测开劝退
2988
9
...
“CRUD”正在消亡吗,2026该何去何从
2980
10
...
双非老鼠的悲惨秋招
2799
创作者周榜
更多
正在热议
更多
#
26年哪些行业会变好/更差
#
8988次浏览
127人参与
#
实习,不懂就问
#
147618次浏览
1325人参与
#
去年的flag与今年的小目标
#
4396次浏览
120人参与
#
卷__卷不过你们,只能卷__了
#
2974次浏览
78人参与
#
有深度的简历长什么样?
#
9541次浏览
185人参与
#
哪些公司在招寒假实习?
#
4278次浏览
49人参与
#
入职第一天
#
5783次浏览
98人参与
#
你都用AI做什么
#
3601次浏览
94人参与
#
写论文的崩溃时刻
#
2085次浏览
58人参与
#
你不能接受的企业文化有哪些
#
4768次浏览
83人参与
#
一人分享一道面试手撕题
#
12113次浏览
591人参与
#
实习学到最有价值的工作习惯
#
54289次浏览
433人参与
#
你最满意的offer薪资是哪家公司?
#
64253次浏览
320人参与
#
应届生应该先就业还是先择业
#
162061次浏览
822人参与
#
外包能不能当跳板?
#
55998次浏览
261人参与
#
滴滴求职进展汇总
#
292875次浏览
2415人参与
#
你的实习什么时候入职
#
333309次浏览
2235人参与
#
帆软软件工作体验
#
8731次浏览
36人参与
#
校招第一份工作你干了多久?
#
132818次浏览
586人参与
#
秋招你被哪家公司挂了?
#
1003607次浏览
7717人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务