首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
05-19 19:12
北京邮电大学 Java
AI Agent 面试 Top50 必刷题
大家好,我是马丁。最近不少同学准备 AI Agent 面试,问我有没有高频题清单。于是基于面试问题出现频次与难度加权排序,精选了 50 道最高频的必刷题,覆盖 Agent、RAG、LLM、MCP、AICoding 等核心方向,希望对求职或跳槽的小伙伴有所帮助。一、筛选说明排序规则:出现频次 × 难度权重(基础=1,进阶=1.5,深入=2) 更新周期:持续更新二、Top50 题目列表1、什么是 ReAct?它的思考-行动-观察循环和工具调用流程是怎样的? 分类:Agent / LLM 难度:进阶 高频公司:淘天、腾讯、字节、百度2、RAG 中长文档切片的粒度和分块策略如何设计与优化? 分类:RA...
AI面会问哪些问题?
点赞
评论
收藏
分享
昨天 21:18
已编辑
长沙理工大学 游戏后端
灵犀互娱-平平无奇工作室-ai面(挂)
面试岗位游戏客户端开发工程师面试问题自我介绍玩的时间最长的游戏是什么为什么想做游戏开发项目相关的就不说了,不过有一些算比较通用的表现层和业务层出现冲突了可以怎么解决帧同步和状态同步的区别,你这个项目里用的是什么,为什么这样选图形学:如何判断一条射线与一个三角形相交(ai 说用重心坐标,那问的不应该是如何判断一个点在三角形里面吗)对比 Lambert 和 Blinn-Phong 两个光照模型介绍一下 PBR八股:map 和 unordered_map 的区别(使用的数据结构,增删查改的时间复杂度)常见的排序算法以及适用场景有没有其他公司的 offer开发过程中遇到过的最大的挑战是什么,该如何解决...
查看12道真题和解析
点赞
评论
收藏
分享
04-03 10:26
中国矿业大学 Java
字节hr面
hr先为昨天的delay道歉了,态度很温柔也很专业。主要问一些压力的克服实习内容与成长,困难怎么克服到岗时间与实习时长为什么不考研先打了个mentor和leader比较忙的预防针反问:工作节奏,offer时间
二十岁的编程男神王大...:
兄弟,到岗时间你说的多少呀,我们导师只能要求六月走,感觉说六月会不会给挂了offer
查看4道真题和解析
点赞
评论
收藏
分享
04-13 15:34
贵州财经大学 人工智能
我就想找个8k的这么难
大概六个平台,投了快小一千份了,一个约面没有。目前是在实习,转正答辩已过,但是工资只有5k,想找8k左右的,求大佬们拷打一下😩目前在贵州,想去深杭。
程序员小白条:
AI方面很卷的啦,你这写太常规了,没亮点,而且需要竞赛和论文
春招至今,你收到几个面试...
点赞
评论
收藏
分享
05-19 21:41
仲恺农业工程学院 Java
滴普科技日常实习一二面 已oc
JavaA📍面试公司:滴普科技🕐面试时间:2026.05.19💻面试岗位:Java后端开发实习生❓面试问题:一面:栈和队列的区别链表和数组的区别Java中哪些实现用到了链表和数组介绍一下HashMap介绍一下红黑树智能客服项目讲一下检索流程怎么做的重排序模型怎么调用的我的文档要控制范围 不让某些用户搜索到 怎么办mcp是什么mcp的通信方式有哪些怎么保证mcp调用的安全性采用stdio通信协议的情况下 怎么保证安全性 避免他对重要数据修改mcp和skill的区别skill的渐进式暴露是怎么做的二面:面向对象是什么有没有了解过哪些设计模式单例模式的作用是什么讲一讲代理模式讲一下数据库三大范...
查看21道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
AI Agent 面试 Top50 必刷题
1.9W
2
...
到底怎么和 AI 一起写一个好项目?
7253
3
...
要对实习同事表白吗?
6552
4
...
当你有一个只想捆住你的妈妈
6179
5
...
实习dirty work,怎么包装产出
4980
6
...
看不懂组内文档,实习怎么偷产出?
4151
7
...
前京东HR说:这样改简历,真的会被一眼相中
3370
8
...
26届双非本求职总结
3239
9
...
三段实习,被室友骂工贼,我错了吗?
3199
10
...
逆天操作,也是让我遇到了
2988
创作者周榜
更多
正在热议
更多
#
26届春招投递记录
#
33370次浏览
258人参与
#
要毕业了,再不说就来不及了
#
6764次浏览
113人参与
#
27届实习投递记录
#
115878次浏览
1262人参与
#
秋招想进国企该如何准备
#
150328次浏览
693人参与
#
如何成为1个AI工程师?
#
4916次浏览
260人参与
#
机械人的秋招小目标
#
32833次浏览
251人参与
#
我与AI的日常
#
10964次浏览
211人参与
#
AI面会问哪些问题?
#
135037次浏览
3503人参与
#
不考虑薪资和职业,你最想做什么工作呢?
#
168842次浏览
916人参与
#
如果公司降薪,你会跳槽吗?
#
168898次浏览
972人参与
#
大学生该如何认清当下的就业环境?
#
178919次浏览
944人参与
#
腾讯工作体验
#
647321次浏览
3916人参与
#
25届非技术实习投递记录
#
159461次浏览
1028人参与
#
比亚迪求职进展汇总
#
938471次浏览
3165人参与
#
一人推荐一个机械人值得去的公司
#
497893次浏览
4300人参与
#
滴!实习打卡
#
861631次浏览
6906人参与
#
牛友的志愿填报指南
#
72316次浏览
504人参与
#
你在职场上见过哪些“水货”同事
#
41782次浏览
177人参与
#
我的秋招总结
#
344490次浏览
4459人参与
#
今年秋招哪家公司给的薪资最良心?
#
488676次浏览
2608人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务