首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
07-09 15:27
广州软件学院 前端工程师
别装了,你肯定也想过用AI辅助找工作吧?👩💻💡
UU们!今天来聊一个我最近被问爆的问题👇 —— 你找工作的时候会用AI吗?会不会觉得有点‘作弊’? 作为一个从实习生卷到前端主力的老阿姨👩💻 (没错,我现在已经可以和AI愉快地合作了🤫) 我可以很负责任地说一句: 👉 现在找工作不会用AI,真的是在浪费资源! 而且我真的靠AI干了很多事👇 从写简历、改项目描述、模拟面试,甚至刷题都离不开它! 🤖【1】AI到底能帮我们做什么?我亲测有效的5个用法】 ✅ 1. 简历优化大师上线 之前我的简历就是一坨“学生作业式”的文字, 用了AI之后,直接升级成“专业职场人风格”, 连HR都说:“这表达方式挺成熟的,是自己写的吗?” (当然啦,我只是...
你找工作的时候用AI吗?
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-07 18:08
兄弟们,25届应届生终于找到班上了!
终于找到一份老板好,同事好,氛围好的工作了!🎉👏在这三个月的时间里,投了几百个,面试不过10家,上个月入职了一家,挂羊头卖狗肉,同事不愿教,问问题不爱回答,真的让我一个头两个大。今天入职第一天,办公室里的同事们都很友好!没有任何不适感以及到新环境的恐惧感,我想这就是我想要的环境了!而且周末双休!交通半小时!中午包餐!午休两个小时!7点半就下班!完全有属于自己的时间!接下来就希望能顺利转正啦!虽然不是大厂,但是也想告诉大家现在找工作这么难,不要死磕大厂,先有工作再冲大厂也不迟✌️
码农索隆:
好!开心,给你看看我小区的小猫!
查看图片
投递新环境等公司7个岗位
点赞
评论
收藏
分享
06-16 19:09
河南开封科技传媒学院 Java
26届暑假想找java实习
面试官要完简历之后大部分都是已读不回,大佬能帮我看看我的简历有什么问题吗
牛客83700679...:
简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞
评论
收藏
分享
05-27 00:13
已编辑
东华理工大学 Java
双非一本被误认为211
双非一本目前窘境学校在南昌,投外地的公司没有一个线上面的(已投1000+),南昌公司投了个遍,一家线上其他都是线下,其中两家中厂的面试已挂;另外一家小厂的后端八股基本全答上来了(挂,公司要全栈);其他的几家小厂面试都是问了些技术无关的问题(要我去当黑奴的),譬如某皓,张口闭口就是公司文化是加班,问能不能接受,项目用的还是ssh,这谁敢去啊。同寝室室友也是和我差不多情况,他比我要好些。今天好不容易简历过了个大厂,没想到是癞蛤蟆想吃天鹅肉哈哈。
内向的柠檬精在研究求...:
没必要,暑假前找个中厂就行了,大厂完全不敢想,之前被哔站吊打,现在有个中厂hr面了,不知道能不能过
大家都开始春招面试了吗
点赞
评论
收藏
分享
07-08 13:52
快手_机器学习算法部_机器学习算法工程师(准入职员工)
快手内推
在快手做了三个多月的后端开发实习,在这里浅浅分享下我的实习体验~ 工作节奏: 基本上是早10晚9,周末双休。整体来说工作强度还是不小的,不过应该也是互联网常态了吧QAQ 福利待遇: 技术岗是400/天,晚上8点以后下班会发30餐补,入职也会一次性发180能量券,学校不在当地的话还可以申请1500/月的房补。¥这块老铁厂还是挺大方的哈哈。 实习生培养: 团队氛围很nice,我的mentor人真的很好,有问题向他请教都会很细致很耐心地给我解答,好感度upup~不过同事们平时可能都比较忙,捕捉到他们不容易,所以每次沟通或者汇报前最好提前做好准备。具体工作职责的话,一开始基本是接同事们剩下的活,直接上...
快手公司福利 861人发布
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
2
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
四段实习终大厂 如此牺牲为哪般
1.2W
2
...
通过实习工资给父母换手机
1.0W
3
...
我从来没想过我会出轨
5835
4
...
三次入职字节,我终于成为了一名正式的bytedancer
4011
5
...
上班一周了 感觉这辈子完了
3830
6
...
暂且原谅这个世界一下下
3291
7
...
淘天lastday知无不言
2853
8
...
修改简历被骗了将近700
2750
9
...
儿时记忆在梦中闪回,一觉醒来继续做“大人”
2536
10
...
开个帖子,记录一下二本仔秋招
2449
创作者周榜
更多
正在热议
更多
#
实习生的蛐蛐区
#
55050次浏览
411人参与
#
运营面经
#
115648次浏览
1250人参与
#
你认为小厂实习有用吗?
#
20886次浏览
250人参与
#
说说你知道的学历厂
#
39576次浏览
238人参与
#
应届生,你找到工作了吗
#
21362次浏览
152人参与
#
三一重工求职进展汇总
#
13379次浏览
61人参与
#
材料人,你们签了哪个公司
#
7487次浏览
18人参与
#
计算机有哪些岗位值得去?
#
17126次浏览
160人参与
#
哪一瞬间觉得自己长大了
#
10072次浏览
228人参与
#
面试尴尬现场
#
32646次浏览
217人参与
#
你找工作的时候用AI吗?
#
18915次浏览
232人参与
#
下班后的时间你怎么安排
#
10357次浏览
140人参与
#
烟草笔面经互助
#
17854次浏览
184人参与
#
秋招最大的收获是什么?
#
36116次浏览
309人参与
#
社会教会你的第一课
#
36885次浏览
463人参与
#
电网笔面经互助
#
36916次浏览
357人参与
#
硬件应届生薪资是否普遍偏低?
#
75431次浏览
520人参与
#
lastday知无不言
#
58326次浏览
475人参与
#
你的领导最像哪种动物,为什么?
#
14372次浏览
107人参与
#
学历贬值真的很严重吗?
#
22442次浏览
163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务