首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
10-01 17:50
天津工业大学 硬件开发
瑞晟微电子-硬件工程师
自我介绍 1.了解USB,PCIe接口走的什么架构协议吗,Serdes的编码方式,FFE,CTLE,DFE具体的工作原理 2.PCIe用的啥协议,多少个Lane,有什么信号,最大读写速度是多少,用示波器测过吗 3.MIPI接口的D-PHY,HS模式和LP模式的区别,HS模式向LP模式是怎么切换的 4.对于以太网了解多少,用的什么PHY芯片 5.电源完整性,pdn的目标阻抗为什么要这样要接近为0,具体是在哪些频段内,目标阻抗具体怎么实现 6.信号完整性,传输线RLGC模型,特性阻抗因素,用什么软件算的 7.白板画一阶低通滤波器和一阶高通滤波器 8.01101111码型经过信道衰减后会变化什么样子...
查看8道真题和解析
点赞
评论
收藏
分享
10-08 15:33
滴滴_移动端研发工程师(准入职员工)
滴滴内推,滴滴内推码
一、吃 食堂三餐齐全,晚餐有30元补贴,还可以点“食域”外卖(送到楼层茶水间)。商家每周轮换,种类丰富但有限(快餐、轻食、粉面等)。二、办公设备1. 入职即配笔记本电脑,技术岗Mac,非技术岗联想。2. 工位自带显示器,即插即用。3. 免费领取鼠标、转接器等,内部系统还可申请文具和生活用品。三、福利1. 餐补:食堂或外卖任选,晚餐免费。2. 班车:早晚免费接送,西二旗地铁站直达。3. 积分商城:参与活动攒积分,可兑换生活用品。4. 健身房:设备基础,错峰使用人少,淋浴设施齐全。 5. 休息室:午休床位少,需抢。6. 节假日福利:妇女节、跨年盯盘有小礼品。7. 活动:食堂限时特色餐、内部抽奖等。...
滴滴公司福利 1605人发布
点赞
评论
收藏
分享
09-18 21:54
门头沟学院 Java
找实习只有黑马和点评够吗
面了两次还是决定沉淀一下寒假争取找个大一点的厂,请问各位牛爷爷们我需不需要补个微服务项目或者在项目里加一些AI应用的东西呢?
我不会编程a:
找不到就把学校名甩面试官脸上
点赞
评论
收藏
分享
10-08 22:06
门头沟学院 嵌入式软件工程师
韶音嵌入式三面
韶音三面距离二面隔了一个月 1. 这个专业主要是学什么 2. 研究生课题 3. 对你来说遇到最困难的是什么 4. 如果让你重新再做一次你会怎么做 5. 在项目中学到了什么 6. 如果让你再接一次任务你会怎么做,这么多指标怎么考虑 7. C++面向对象的理念 8. 讲一下epoll 9. 职业规划 10. 地域的选择 11. 有什么offer 12. 对韶音的了解 13. 平时运动
查看13道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
国庆有感 测开劝退
4252
2
...
就这样上班一年了,选对公司跟选对人是一样的。。
3101
3
...
JVM调优
2764
4
...
10.9 荣耀通软一面
2400
5
...
双非秋招记录(下)
2330
6
...
出去实习被家里人狠狠骂了一顿
1987
7
...
实习生放了八天假
1651
8
...
化身东孝子!
1524
9
...
后端写博客不要自建博客网站
970
10
...
估计22号离职xhs了,总结下
965
创作者周榜
更多
正在热议
更多
#
一觉醒来,穿越回国庆前
#
10351次浏览
50人参与
#
你找工作的时候用AI吗?
#
149654次浏览
815人参与
#
深信服秋招来了
#
275140次浏览
2908人参与
#
国庆后,我的返工状态
#
2746次浏览
17人参与
#
央国企投递记录
#
114074次浏览
1464人参与
#
机械制造公司评价
#
143504次浏览
331人参与
#
薪资爆料
#
156933次浏览
1314人参与
#
通信/硬件公司求职体验
#
147585次浏览
966人参与
#
面试等了一周没回复,还有戏吗
#
155452次浏览
1309人参与
#
找工作有哪些冷知识
#
148318次浏览
2365人参与
#
巨人网络求职进展汇总
#
132203次浏览
916人参与
#
如果没找到工作,考公是你的退路吗
#
52661次浏览
414人参与
#
毕业季,给职场新人一些建议
#
132221次浏览
2165人参与
#
通信硬件2024笔试面试经验
#
241401次浏览
2001人参与
#
机械人求职现状
#
26232次浏览
276人参与
#
生化医药面经大本营
#
135500次浏览
515人参与
#
通信/硬件求职避坑tips
#
98676次浏览
958人参与
#
参加过提前批的机械人,你们还参加秋招么
#
96256次浏览
1563人参与
#
26届秋招投递记录
#
35654次浏览
420人参与
#
第一次面试
#
989866次浏览
13570人参与
#
满帮集团求职进展汇总
#
5271次浏览
61人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务