首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Boundary
2017-05-16 19:31
中国人民解放军国防科技大学 C++
关注
已关注
取消关注
头条 一面挂 😂😂😂
问了两个算法题 1.给n个数,按字典序排序后,求第m个数 2. K个超长有序数组,求中位数 第一个题 勉强答对,但是面试官不满意 第二题就没答出来。主要是自己太菜了。 求各位大神,说说该怎么做吧
提示
全部评论
推荐
最新
楼层
盛夏de午夜
腾讯_研发
如果这个数是有范围的比如是int的范围,那就可以二分数的范围来查找。 1.那么可以假设用 (int最大值+int最小值)/2,作为假设中位数mid。 2.对于k个数组,均去查找mid所对应的位置,然后计算所有数组中比mid小和比mid大的数的个数lcont,rcount,因为是有序的,这个过程只要 klogn (n为数组长度)。 3.如果lcount==rcount ,那么mid就是真正的中位数 4.否则继续二分范围,比如lcount大,就让mid往左二分。 总的时间复杂度应该是log(数的范围)*k*logn 。log(数的范围) 一般不大,int的话就32
点赞
回复
分享
发布于 2017-05-17 10:33
客户端布道师字节分布
字节跳动_抖音搜索_tech lead
/** * Created by tlh on 2017/5/17. * 求两个排序数组合并后的中位数 * 设数组A和B,长度分别为m和n, 要求时间复杂度为O(log(m+n))。 * 用二分查找的思想,求合并后数组的第k个数。每次二分的过程都要设法舍弃掉数组的一部分,从而达到收敛缩小查找范围的效果。 * 从数组A和B分别取第k/2个数,当A[k/2-1] < B[k/2-1],则A的前k/2个元素必定在合并后的数组的前k个元素内,舍弃这A的前k/2个元素。 * 否则,舍弃B中前k/2个数。 * 接下来,递归在剩下的(m+n-k/2)的元素中找第(k-k/2)元素。 * https://www.jiuzhang.com/qa/1768/ */ public class MedianOfTwoSortedArrays { // 找到第K个元素 private int findKth(int[] A, int iA, int jA, int[] B, int iB, int jB, int k) { int m = jA - iA + 1; // 数组A的长度 int n = jB - iB + 1; // 数组B的长度 if (n < m) return findKth(B, iB, jB, A, iA, jA, k); // 保证数组A长度比数组B长度小 if (m == 0) return B[k - 1]; // 当较小的数组跑完了,返回数组B的第k个 if (k == 1) return Math.min(A[iA], B[iB]); // 返回第1个数 // 将k分成两部分 int lenA = Math.min(k / 2, m); // 取数组A的前lenA个元素 int lenB = k - lenA; // 取数组B的前lenB个元素 int pa = iA + lenA - 1; // 数组A的第lenA个元素 int pb = iB + lenB - 1; // 数组B的第lenB个元素 // 判断A[pa]和B[pb]的大小 if (A[pa] < B[pb]) return findKth(A, pa + 1, jA, B, iB, jB, k - lenA); // 舍弃数组A的前lenA个元素 else if (A[pa] > B[pb]) return findKth(A, iA, jA, B, pb + 1, jB, k - lenB); // 舍弃数组B的lenB个元素 else return A[pa]; // A[pa]或B[pb]就是对应的第k个数 } public float getMedian(int[] A, int[] B) { int totalLen = A.length + B.length; if ((totalLen & 1) == 1) { // 总数组长度为奇数 return findKth(A, 0, A.length - 1, B, 0, B.length - 1, totalLen / 2); } else { // 总数组长度为偶数 return (findKth(A, 0, A.length - 1, B, 0, B.length - 1, totalLen / 2) + findKth(A, 0, A.length - 1, B, 0, B.length - 1, totalLen / 2 + 1)) / 2.0f; } }
点赞
回复
分享
发布于 2017-05-17 18:20
清夜
北京邮电大学 C++
初步思考了一下,说一下自己的想法,如有误,轻喷... 对于第一题,字典序也是一种全序,这样的话使用partition的思路应该也可以O(log(n)),需要自己定义比较函数 对于第二题,应该是和2个数组的情况类似,相当于判断k个数组的第rank / k 个元素,找其中最小的淘汰元素。感觉实现起来也挺复杂,复杂度的话是在O(klogn)吧,不太确定 之前还想了使用堆的方法,就是使用一个最小堆存储数组首地址(指针),键值就是首元素值,然后每次取堆顶指针对应元素,递增指针,这样就改变了键值,调整堆,然后重复过程n/2次找到中位数 复杂度是O(klogk + n/2 * logk),只是比nk稍微好一点。。。。。。
点赞
回复
分享
发布于 2017-05-17 20:18
Boundary
楼主
中国人民解放军国防科技大学 C++
关于第一题, 是不是可以用堆排序? 定义某种比较函数cmp, 使得可以让11>101. 维护一个大小为m的大顶堆, 取前m个元素组成大顶堆, 遍历剩下的n-m个元素, 对于新的元素, 如果小于堆顶元素, 就替换堆顶元素,并调整堆, 否则就跳过该元素.继续比较下一个新的元素. 直到所有元素遍历完, 返回堆顶元素. 这样做的复杂度为O(nlog(m)). 但这种做法不适用于m很大的情况.
点赞
回复
分享
发布于 2017-05-17 19:22
sky_
University of Otago C++
第二道题,二分,
点赞
回复
分享
发布于 2017-05-17 17:20
东风造极
中国科大 Java
第一题,是这个题目?http://blog.csdn.net/fool _ran/article/details/40479059
点赞
回复
分享
发布于 2017-05-17 14:36
已注销
第一题的做法是: 将所有数字都在最后补充0,直到到位数相同,即位数不够的一直乘10,然后从小到大排序,第m个数字删去最后补充的0就是答案。 时间复杂度大约是n*logn,补0是复杂度为19*n,logn和19相差不大。
点赞
回复
分享
发布于 2017-05-17 12:10
静静卟噜卟噜
三峡大学 Java
为啥头条面试官都是女的
点赞
回复
分享
发布于 2017-05-17 08:53
zehua
西安交通大学 测试开发
我是来看大神怎么解的~
点赞
回复
分享
发布于 2017-05-16 23:47
C.C.
河北师范大学 iOS开发
第二个题目可以 维护两个堆来找中位数。
点赞
回复
分享
发布于 2017-05-16 22:21
盛夏de午夜
腾讯_研发
感觉你第一题答出来,第二题把k=2说清楚,应该没问题
点赞
回复
分享
发布于 2017-05-16 21:20
nicaiww
南京大学 Java
面试官是个女的?
点赞
回复
分享
发布于 2017-05-16 20:33
elop
南京航空航天大学 C++
都已经有序了?还求什么中位数
点赞
回复
分享
发布于 2017-05-16 20:25
牛客1973
重庆邮电大学 C++
楼主面的什么岗位?
点赞
回复
分享
发布于 2017-05-16 20:23
晴天158
Grab_Delv_服务端研发
第二题百度考了,不过是个简单版,给俩有序数组找中位数,要求复杂度log(数组和的长度)
点赞
回复
分享
发布于 2017-05-16 19:54
暂无评论,快来抢首评~
相关推荐
05-19 13:16
已编辑
深圳大学 Java
到底怎么和 AI 一起写一个好项目?
这段时间一直在做简历上的项目,我算是尚硅谷和黑马的骨灰粉了,全栈开发的核心教学视频我基本都有学习。 最近在B站上看视频来跟进点评和外卖的过程中我不断定期去反思自己的成效 ,发现单纯盯着视频上老师的节奏,敲下暂停键然后一比一的照抄下屏幕上标准代码并没有让我的工程能力和后端素养得到真正的提升。在瞌睡,回放,看弹幕来修bug的返回折腾下我开始感到厌倦与疲惫。 经过长期的听课的被动学习,我深深的认识到此举的效率十分低下并且我相信最终和曾经的各位一样:除了完美运行的代码文件和简历上的项目外一无所获。 扪心自问学这一个月到底学到了什么?是真的完全熟悉前后端联调的标准流程?是真的理解了数据与对象在消息流转过...
Biaobiaone:
好清晰的学习思路,这篇干货让我也意识到我在项目学习过程中可以改进学习方法的点
不得不说haozhe兄的反思能力真的好强
我的求职进度条
点赞
评论
收藏
分享
05-19 11:10
已编辑
苏州工艺美术职业技术学院 通信技术工程师
前京东HR说:这样改简历,真的会被一眼相中
说实话,在牛客看了无数简历教程,都在教“STAR法则”、“量化成果”。做了这么久招聘,我想说,这些都对,但作为在帆软、掌趣和京东都筛过简历、也亲手发过很多Offer的前HR招聘实习生,我想说点更“底层”的东西——HR到底怎么筛简历?你的简历如何在系统里“活”过第一秒?今天不聊虚的,就分享三个我作为“简历筛选者”时,最希望候选人懂的、能立刻上手的硬核技巧。小技巧一:别用“负责”,用“接管”——动词下沉(到能落地),责任上浮这是我在帆软做校招时最深的感触。看到“负责公众号运营”、“负责策划举办活动”这种描述,我内心是毫无波澜的。这个词太安全也太模糊了,而且,作为实习生,很难全面负责一个模块和一件事...
点赞
评论
收藏
分享
04-15 14:23
门头沟学院 Java
避雷武汉浮木科技开发岗
首先是个很小的公司,实习生和正式工工作没区别,正式工几乎每天无偿加班。java开发实习生工作量很多,没有人教你,要求无偿加班,并且是纯外包公司,buff叠满了
野猪亨利a:
我勒个浮木科技😂
点赞
评论
收藏
分享
04-19 18:50
已编辑
字节跳动_后端开发(实习员工)
学院二本圆梦字节,提前结束暑期啦
个人背景:学院二本计科专业 大二开始实习个人经历:安克创新 、理想汽车、字节跳动碎碎念:我做事只有三分钟热度。看到进了大厂的同学,我会羡慕,也会跟着努力上进;但遇到好看的小说,我又会放下手头的事沉迷其中,之前的坚持也就中断了。我有些自卑,总觉得自己学历和外貌都不够好。之前偶然在网上受到关注,我就喜欢上了上网,因为这里有很多人认可我。但我也很在意别人的评价,偶尔看到嘲讽的言论,会触发我的自卑情绪,让我感到愤怒。有时候我会强硬地回怼,有时候又会懦弱地选择无视。我也有虚荣心。不管是拿到安克、理想还是字节的机会,我在分享的时候都会带着这份心思。我会特意强调自己学历不好,是为了衬托出过程的艰难,以此显得自己更厉害。我知道,人往往会炫耀自己缺少的东西,来掩盖内心的空洞。我总想着走捷径,不太喜欢踏踏实实地做事。找实习的时候,我花了更多时间在研究面试技巧上,而不是提升专业能力。我会反复听面试录音分析技巧,看面试教程学习怎么和不同的面试官沟通,还会每天自言自语练习语言表达,同学都觉得我有点奇怪。我的实习生涯里,侥幸和运气占了很大一部分。我总在想,如果有一天我失去了这份幸运,这些特质可能会让我一蹶不振。ps: 很多人会问我学习路线和经验 但是就像我上面说的 我的实习过程靠的很多是关键节点的运气 技术上面我可能不如很多人 所以请大家理性求助和理性参考我的回答 附上我的投递记录
我的offer在哪里...:
从去年看到现在,飞升哥就是榜样
我的求职进度条
点赞
评论
收藏
分享
05-15 11:11
吉首大学 后端工程师
遥望科技(Agent开发)面经
1.自我介绍2.实习介绍3.会哪些编程语言,掌握程度,会哪些agent开发框架?4.LangChain和LangGraph的区别?5.新版本LangChain为什么底层使用LangGraph?6.使用过哪些Vibe Coding工具,怎么使用?实习相关:7.讲一下Agent自动建单流程?8.再自动建单前的NLP处理是怎么做的?9.主Agent和自动建单Agent(子)是怎么做协调的?10.为什么需要单独构建Agent Tools服务?11.为什么将Tools注册到Nacos上,而不是使用MCP这种形式?12.工具的自动注入是怎么实现的,有什么意义?其他:13.请你讲讲Agent和基模的本质区别...
查看15道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
2
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
AI Agent 面试 Top50 必刷题
1.9W
2
...
看不懂组内文档,实习怎么偷产出?
9594
3
...
碰到不公平的违法行为,一定要捍卫!
5784
4
...
五月了,感觉实习很难找了
4882
5
...
要对实习同事表白吗?
4600
6
...
理性讨论,卷实习算不算工贼行为?
3953
7
...
三段大厂,说下我见过的最低学历
3765
8
...
妈妈只想要你快乐
3693
9
...
26届双非本求职总结
3582
10
...
实习一个星期,我因为只加了20分钟班被开除了
3340
创作者周榜
更多
正在热议
更多
#
26届春招投递记录
#
35712次浏览
296人参与
#
你今年的平均薪资是多少?
#
229917次浏览
1065人参与
#
如何成为1个AI工程师?
#
5497次浏览
274人参与
#
求职你最看重什么?
#
170273次浏览
914人参与
#
27届实习投递记录
#
120262次浏览
1370人参与
#
我想象的实习vs现实的实习
#
340652次浏览
2315人参与
#
携程笔试
#
179878次浏览
928人参与
#
工作丧失热情的瞬间
#
401119次浏览
2589人参与
#
要毕业了,再不说就来不及了
#
8591次浏览
150人参与
#
硬件人的简历怎么写
#
349580次浏览
3141人参与
#
哪些公司校招卡第一学历
#
262381次浏览
879人参与
#
你在职场上见过哪些“水货”同事
#
41911次浏览
179人参与
#
秋招提前批,你开始投了吗
#
766475次浏览
8495人参与
#
机械人的秋招小目标
#
32918次浏览
251人参与
#
面试被问第一学历差时该怎么回答
#
297066次浏览
2306人参与
#
你觉得机械有必要实习吗
#
88999次浏览
536人参与
#
国庆假期,给大脑放个假
#
26914次浏览
121人参与
#
AI面会问哪些问题?
#
136374次浏览
3637人参与
#
听到哪句话就代表面试稳了or挂了?
#
271263次浏览
1733人参与
#
提名点击就挂的公司
#
146606次浏览
494人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务