首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-22 17:05
已编辑
西安邮电大学 嵌入式软件开发
卓驭嵌入式底软实习面试
前言:面试官人很好,说话很温柔,一些设计性问题答不上来会给一点提示。面试了1个小时,大约40分钟的C语言与freertos,15分钟的项目,最后5分钟问了一些非技术问题与反问。接下来是面试的流程:自我介绍C语言:staticvolatile以及使用场景程序的内存分布;怎么设计一个自定义的段rtos操作系统:任务是怎么调度的?怎么让任务进入阻塞状态;vTaskDelay阻塞任务具体怎么实现的;如果我想实现一个微秒级的vTaskDelay你该怎么设计消息队列内部是怎么实现的中断中带fromISR后缀的API函数和普通API函数有什么区别?请从他的内部实现讲解你该怎么将freertos的源码移植到当...
发面经攒人品
点赞
评论
收藏
分享
今天 14:48
复旦大学 Java
一个月的时间,已经收获1000牛友的关注了!
这个月也输出了几篇爆款文章,也获得了很多牛友的喜欢,感谢大家的支持!感谢大家的喜欢,希望大家多多关注,送一朵小花,继续给大家输出更多优质内容!
牛客2025仙途报告
点赞
评论
收藏
分享
11-21 11:54
门头沟学院 Java
没投简历,直接被字节HR加微信了。。。
暑假投过字节实习,当时无音讯。近期也没投过简历。今天有个字节HR直接加我微信,联系我约面😅本想说最近没时间拒绝的,她直接给我约到12月了,下周一给我发邮件有牛有知道这是啥情况嘛看她朋友圈,似乎就是字节HR不管了,12月试试吧
被迫内卷的man:
正常 字节面试是来者不拒 去的真没几个 没装备好被拷打+1
点赞
评论
收藏
分享
10-30 16:31
重庆大学 Java
27找日常实习
投了3天,沟通160多个,一个面试没有,这正常吗
代码飞升_不回私信人...:
你说你善于学习,大家都会说。你说你是985,985会替你表达一切
点赞
评论
收藏
分享
12-22 21:04
广州希音国际进出口有限公司_供应链管理(准入职员工)
shein内推,shein内推码
业务一面--30mim自我介绍在安克创新的产品运营主要做了什么?未来的职业规划方向?产品经理和产品运营的区别?两者重叠的核心部分是什么?为什么想做产品运营?为什么实习都不超过半年?这次实习的预期时长与到岗时间?需求收集与过滤占比较高,能接受吗?(其余为面试官讲解岗位内容)二面-25min自我介绍未来希望做产品运营还是产品经理?对该产品的哪条业务线感兴趣?B端产品和C端产品的区别?为什么想做B端产品?(过往为电商运营经验)一周出勤时间?英语听说读写水平?英语自我介绍英语问答:能否接受跨国会议的时差?全球超级独角兽SHEIN26届校招网申开启【关于Shein】全球领先的跨境电商,服务于150+个国...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
杂记近期所面试的三家中小厂
9523
2
...
工作半年后更确定:我们依然不欠优绩主义什么
8571
3
...
牛客2025年终报告重磅上线——揭晓你的年度修炼成就!
6844
4
...
#牛客2025仙途报告#居然是五颗星
5117
5
...
选择即命运—2025年度总结
4696
6
...
牛客年终报告,今日道爷我成了
4260
7
...
圣诞节用 AI 做个牛客运营翻翻乐!(含代码)
4232
8
...
一个程序员的自救书|从酒吧陪玩DM到上岸大厂
3647
9
...
互联网实习求职的黑话和timeline,你所需要知道的……
3571
10
...
大学废物离开优绩主义之后发现外面根本没下雨
3174
创作者周榜
更多
正在热议
更多
#
牛客2025仙途报告
#
5375次浏览
146人参与
#
礼物开箱Plog
#
1805次浏览
86人参与
#
2025年终总结
#
179065次浏览
3042人参与
#
工作两年,想和老板谈涨薪怎么说
#
38827次浏览
175人参与
#
哪些行业值得去?
#
14398次浏览
76人参与
#
你面试体验感最差/最好的公司
#
23183次浏览
388人参与
#
秋招落幕,你是He or Be
#
16388次浏览
303人参与
#
一人说一个提前实习的好处
#
14900次浏览
246人参与
#
今年你最想重开的一场面试是?
#
6293次浏览
89人参与
#
考公VS就业,你怎么选?
#
88160次浏览
497人参与
#
职场新人体验
#
156969次浏览
1123人参与
#
离家近房租贵VS离家远但房租低,怎么选
#
13736次浏览
130人参与
#
重来一次,你会对开始求职的自己说
#
7175次浏览
192人参与
#
找工作,行业重要还是岗位重要?
#
85897次浏览
1700人参与
#
各大公司公布25年Q3财报,你怎么看?
#
5063次浏览
50人参与
#
实习没事做是福还是祸?
#
19247次浏览
290人参与
#
机械制造秋招总结
#
97389次浏览
878人参与
#
宁德时代求职进展汇总
#
154196次浏览
686人参与
#
反问环节如何提问
#
126472次浏览
2670人参与
#
工作中听到最受打击的一句话
#
8774次浏览
142人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务