首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
昨天 20:39
已编辑
南京邮电大学 Java
两个月,用Go语言重写龙虾🦞,GitHub斩获4700stars
我们是开源社区OpenAgent 团队的开发者。花了两个月,用Go语言做了一个真正的0配置,0依赖,双击就能使用的个人本地单文件版龙虾🦞。真正做到了开箱即用,也受到了很多社区中的关注。OpenAgent,一个面向个人开发者和极客的开源本地 AI Agent。定位跟 OpenClaw、Hermes 类似,都是个人本地助手这个赛道,但我们走了一条完全不同的路:用 Go 语言写成一个单文件二进制,下载 exe 双击就能跑,零配置开箱即用。项目地址:https://github.com/the-open-agent/openagent假如这个项目的功能或者架构帮助到你了,希望可以给我们的项目一个st...
mcart:
支持一波,思路上给我了参考
简历中的项目经历要怎么写
点赞
评论
收藏
分享
05-14 21:56
门头沟学院 Java
5.14字节中国广告后端一面
1.单例模式 我写完懒汉式的一直说有问题,我都不知道哪里有问题懵逼了,和我本子上写的一模一样2.CAS底层 两个线程真实交互的过程是什么样子的?3.mysql中的bin log和redo log的二阶段提交,谁先提交?4.HashMap底层 为什么Concurrent是线程安全?5.限流100QPS情况下 如何实现限流? 滑动窗口的问题?如何处理?令牌桶可以解决吗?6.synchronized是怎么样的,懒汉式中,如果一千个请求打过来怎么办?7.求最长递归子序列,要求复杂度nlogn帖主实习一个月修为散尽完了 答得非常差 全程java八股拷打 一点实习没讲也没问 ai也没问 woc!!!!!吗...
查看7道真题和解析
点赞
评论
收藏
分享
05-13 23:29
安徽大学 Java
求建议,这份简历还需要怎么修改吗
大三下才速成的Java,目前只写了苍穹外卖这一个项目,八股也还没怎么背,算法也才开始刷,感觉已经找不到实习了😔不知道接下来该重点去提升哪一个方面,简历感觉写得也很不好。希望大佬们可以给我一点建议😘😚万分感谢🙏🙏🙏
我的求职进度条
点赞
评论
收藏
分享
04-24 15:10
河海大学 Java
28届想找日常实习什么时刻最好啊,4月份boss上打了几百个招呼也没捞到面试,几乎都是不回简历本来是点评,最近给换了,求点评,不玻璃心
你已经投递多少份简历了
点赞
评论
收藏
分享
05-14 17:30
美团_服务零售_软件开发(准入职员工)
华为,你让我是又爱又恨啊!
华为,真实一个让人又爱又恨的公司。爱的是,对学历不错的学生普遍有较高的包容度,并且也舍得给钱,对校招生也是比较友好的。秋招也竟然给我开出了15a的offer,当时确实倍感震惊。薪资构成大致是这样,15a = (基本工资+绩效工资)*12 +10w年终,绩效工资hr说是100%能拿满,年终大部分都能拿满。绩效工资拿满,我感觉还能相信,但是年终大部分人都能拿满,我就有点存疑了。恨的是,公积金只交5%,并且缴纳基数还是按照基本工资交的,这就感觉不大对劲了。虽然看起来每个月到手的钱变多了,但是总体算下来却更少了。还有月末周六要加班,平常应该也会加班。至少我问了我师兄的情况,每次跟他闲聊,他总是说自己一...
华为工作体验
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
AI Agent 面试 Top50 必刷题
1.9W
2
...
到底怎么和 AI 一起写一个好项目?
7094
3
...
要对实习同事表白吗?
6839
4
...
当你有一个只想捆住你的妈妈
5391
5
...
实习dirty work,怎么包装产出
5210
6
...
AGENT面试题?
4364
7
...
前京东HR说:这样改简历,真的会被一眼相中
3547
8
...
26届双非本求职总结
3437
9
...
看不懂组内文档,实习怎么偷产出?
3320
10
...
三段实习,被室友骂工贼,我错了吗?
2695
创作者周榜
更多
正在热议
更多
#
26届春招投递记录
#
32977次浏览
255人参与
#
妈妈治愈了你哪些脆皮时刻
#
47572次浏览
361人参与
#
27届实习投递记录
#
115318次浏览
1259人参与
#
我的工作日记
#
208066次浏览
1830人参与
#
我的求职总结
#
513037次浏览
7098人参与
#
你投了多少家公司?进展是___
#
248282次浏览
1449人参与
#
大学生该如何认清当下的就业环境?
#
178885次浏览
944人参与
#
AI面会问哪些问题?
#
134818次浏览
3482人参与
#
要毕业了,再不说就来不及了
#
6536次浏览
112人参与
#
我与AI的日常
#
10886次浏览
205人参与
#
27届求职交流
#
500778次浏览
4666人参与
#
如果公司降薪,你会跳槽吗?
#
168880次浏览
972人参与
#
今年秋招还有金九银十吗
#
85151次浏览
518人参与
#
25届非技术实习投递记录
#
159454次浏览
1028人参与
#
不考虑薪资和职业,你最想做什么工作呢?
#
168827次浏览
916人参与
#
应届生应该先就业还是先择业
#
202403次浏览
945人参与
#
快手求职进展汇总
#
775768次浏览
7155人参与
#
你以为的实习VS真实的实习
#
144242次浏览
760人参与
#
你觉得什么岗位会被AI替代
#
65441次浏览
386人参与
#
你的秋招进行到哪一步了
#
2803418次浏览
23414人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务