首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-21 20:07
武汉大学 Java
20260117【小红书】笔试算法真题(共3题)
题目1:行为权重1
点赞
评论
收藏
分享
01-24 19:02
浙江大学 嵌入式工程师
给今年要秋招的工科生:找工作时间线规划
已经 2026 年了,准备找工作的同学现在就该正式开始规划了。最近也收到不少同学的私信,普遍比较焦虑,不知道该从什么时候准备。下面这份秋招时间线规划,基于博主本人 半年紧急转行嵌入式、最终拿下 15 个 offer 的真实经验总结,希望能给大家一个清晰可执行的参考。阶段一:1 月–2 月(启动期)核心任务是补短板、打基础,关键在于“精准查漏补缺”。如果已经有一定项目积累,重点可以放在背八股和刷题上。以嵌入式软件方向为例,需要集中梳理高频考点,如 I2C、SPI 协议和 Linux 基础,并结合场景题进行理解,同时把项目中用到的技术点与考点绑定,比如项目里用了 I2C,就系统梳理通信流程、调试过...
点赞
评论
收藏
分享
01-17 02:25
已编辑
四川外国语大学成都学院 运营
大四找不到工作怎么办
找不到工作怎么办 体育专业真不行吗
点赞
评论
收藏
分享
2025-12-19 10:15
西安电子科技大学 通信技术工程师
你是想招我还是不想招我?
三番五次邀请我,诚意很大的感觉。结果一看已经投了俩月了。哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈顺便输出一下我的Offer List:[]挑战全网最少
双尔:
有种大学生特有的清澈的愚蠢
,这就是智联自动发送的广告邮件而已
点赞
评论
收藏
分享
01-19 11:44
万得信息_数据算法工程师(准入职员工)
图拉斯内推,图拉斯内推码
ai面总结:AI调教的很好,问的问题很有意思,整场面试不会有很大的压迫感,追问大多是根据你的回答提问。总时长:35分钟Q1:自我介绍,重点介绍一下个人背景和大学期间的主要经历。Q2:你对于在一家公司长期发展有什么看法?你认为哪几点因素会让你在一家公司长期工作?(有追问)Q3:你取得过的最大成就是什么?过程中最大的难点是什么?你是如何突破的?最终的结果怎么样?(有追问2个)Q4:请描述一个过往遇到的最有压力困难或最具挑战的一个场景,你是如何解决的?对你有什么影响?(有追问)Q5:依你的看法,请描述一个你近期完成的项目任务,如果重来一次,你会做哪些不同的事情来提升结果?(有追问2个)Q6:电商运营...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
经验贴---前端hot80手写题
5432
2
...
滴滴lastweek,知无不言
1444
3
...
考研失败春招求助
1406
4
...
麻了,跟不上天赋哥
1213
5
...
学校教的就业咋一点用不上
935
6
...
有赞agent开发实习一面
905
7
...
牛客的作用就是看面经
859
8
...
双非走测开投了1000份只有俩面试
846
9
...
男人还是得自己先富起来
820
10
...
美图年终奖人均1万块,还得是别人家的公司
780
创作者周榜
更多
正在热议
更多
#
除了Java,最推荐学什么技术?
#
386次浏览
13人参与
#
AI时代的工作 VS 传统时代的工作,有哪些不同?
#
535次浏览
20人参与
#
滴滴求职进展汇总
#
298273次浏览
2437人参与
#
秋招报数:你投了多少家公司?
#
148126次浏览
944人参与
#
你觉得早上几点上班合适?
#
94160次浏览
352人参与
#
如何提高实习转正率?
#
80607次浏览
487人参与
#
一人一个landing小技巧
#
143773次浏览
1500人参与
#
我和mentor的爱恨情仇
#
102274次浏览
924人参与
#
聊聊你的被动加班经历
#
7155次浏览
87人参与
#
为了秋招你都做了哪些准备?
#
31441次浏览
532人参与
#
Tplink求职进展汇总
#
199048次浏览
937人参与
#
你觉得什么岗位会被AI替代
#
35161次浏览
233人参与
#
实习期间如何提升留用概率?
#
230704次浏览
1785人参与
#
牛客十周岁生日快乐
#
207393次浏览
1934人参与
#
你觉得mentor喜欢什么样的实习生
#
44939次浏览
986人参与
#
美的求职进展汇总
#
343972次浏览
2064人参与
#
用一句话形容你的团队氛围
#
36241次浏览
281人参与
#
互联网公司评价
#
480223次浏览
4094人参与
#
秋招的破防瞬间
#
500447次浏览
2595人参与
#
秋招想进国企该如何准备
#
123047次浏览
611人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务