首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
今天 17:24
百度_感知算法工程师(准入职员工)
图拉斯内推,图拉斯内推码
面经:蓝禾的流程推得很快,基本上投完两天就接到了hr的初试电话,直接进行了初试。初试全程大概三十分钟,hr小哥态度很和善。主要问了实践经历获奖的情况最有成就感的事情对电商运营的理解选择公司的标准等,都是比较常规的问题。图拉斯2026届校招启动,今年HC翻倍,抓紧投递~【我们是】图拉斯(原蓝禾) 是一家集产品、设计、研发、品牌、营销和大数据运营于一体的创新型科技公司,总部位于中国深圳,全球员工规模超3000人。【base】深圳【岗位】运营(国内)、运营(国外)、营销、设计、研发技术、职能内推链接:https://lanhevip.jobs.feishu.cn/s/gAwh1MlZJsw内推码:H...
点赞
评论
收藏
分享
2025-12-30 14:36
思摩尔国际(SMOORE)_IT开发工程师(准入职员工)
思摩尔内推,思摩尔内推码
思摩尔结构工程师一面一面技术面,面试官比较年轻,共23min1、面试官上来要求先说说你对思摩尔的了解2、自我介绍3、针对第一个项目的提问:项目背景?你承担的工作?你在项目中遇到的问题?你最大的收获?这些项目中设计的产品有在企业中应用过吗?没有应用的原因你觉得是什么?4、针对第二个项目的提问:在项目中成员有分歧怎么办?有人不配合怎么办?5、除了学校学习和项目科研的内容,你最近有学习过什么新技术吗?6、反问环节(最长的一次)面试官详细介绍了工作内容后续流程,还有总部的一轮面试思摩尔国际2026全球校园招聘倒计时❗还没拿到offer的同学抓紧时间⏰【急招岗位】①技术研发类硕士(24-30W):产品企...
点赞
评论
收藏
分享
2025-12-01 17:26
门头沟学院 Java
女领导突然发vx问要不要一起租房……
当听到我的+1跟我说这话时候,我瞳孔震裂了,兄弟们!现在的领导都这么开放吗,我一大老爷们……怎么拒绝比较好啊!
在炒股的打工鸭很想养...:
以后你绝对会升职加薪很快的,就是得付出一些细胞损失
工作中出现了XX情况正常...
点赞
评论
收藏
分享
2025-12-17 14:33
门头沟学院 Java
字节直接拒,为啥,实习时间短?
投了一个字节校招部门,一来就拒,说我项目周期不匹配,为啥,简历上的实习都是三个月的,咋了嫌弃三个月太短,不稳定吗?
wu970:
应该是拒绝语,hr点击不合适之后自动发送的
投递字节跳动等公司8个岗位
点赞
评论
收藏
分享
今天 23:03
武汉大学 Java
20260104【腾讯】面试算法真题(共2题)
题目1:员工随机抽奖题目2:最长严格递增子序列
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
为什么你的实习是“无效实习”?又该如何做
3190
2
...
都 2026 年了,还在神话 AI Agent开发吗?
2219
3
...
最后一天,你的2025牛客年度报告即将封存!
1902
4
...
双非终于上岸了!!!!
1585
5
...
我的秋招回忆录:从惨败到硕果的成长之路
1379
6
...
2025找工年终总结
1244
7
...
uu们,面试的时候一定要大大方方的啊!
1215
8
...
简历求锐评,211硕士找实习
850
9
...
字节实习生涨薪保真?
835
10
...
第一次感受到世界上有些人真的有优越感
747
创作者周榜
更多
正在热议
更多
#
对2025年忏悔
#
10176次浏览
188人参与
#
机械/制造每日一题
#
82081次浏览
1430人参与
#
一人说一家双休的公司
#
14141次浏览
151人参与
#
非技术2023笔面经
#
316936次浏览
2685人参与
#
实习没人带,苟住还是跑路?
#
18915次浏览
347人参与
#
机械求职避坑tips
#
82609次浏览
537人参与
#
工作中,努力重要还是选择重要?
#
248410次浏览
2412人参与
#
应届生,你找到工作了吗
#
97575次浏览
596人参与
#
如果秋招能重来,我会____
#
79645次浏览
471人参与
#
面试紧张时你会有什么表现?
#
21134次浏览
154人参与
#
为了找工作你投递了多少公司?
#
99520次浏览
685人参与
#
春招前还要继续实习吗?
#
12623次浏览
140人参与
#
每个月的工资都是怎么分配的?
#
81689次浏览
665人参与
#
虾皮求职进展汇总
#
362689次浏览
2767人参与
#
影石Insta360求职进展汇总
#
169377次浏览
1345人参与
#
哪些公司笔/面试难度大?
#
7483次浏览
35人参与
#
AI时代,哪些岗位最容易被淘汰
#
25998次浏览
223人参与
#
你面试被问到过哪些不会的问题?
#
107283次浏览
1879人参与
#
秋招被确诊为……
#
280487次浏览
1589人参与
#
大疆的机械笔试比去年难吗
#
96336次浏览
767人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务