字节跳动-视觉算法工程师一面凉经

总时长 1h:
6分钟项目,50分钟算法题(两道都没做出来)

第一题:40个人,分别有数学和英语成绩,选20个参加英语考试,20个数学考试,总分最大。
第二题:无限大棋盘,从(0,0)到(m,n)跳马,最少多少步

第一题给我整懵逼了,心态有些炸裂
#字节跳动##面经##计算机视觉岗##校招#
全部评论
第一题,可以蒜每个人数学英语之差,然后根据差从大到小排序,从差大的开始选,选分高的,差一样选单科分高的人即可
3 回复
分享
发布于 2021-07-23 16:52
第一题我想的是把40人按分数从高到低,数学英语分两列。同一行先选分数较高的科目,然后选之前看看这个人是不是已经被选了,然后挨个选下去。
2 回复
分享
发布于 2021-07-23 16:51
百信银行
校招火热招聘中
官网直投
假如一个人数学80英语79,另一个数学50英语30,根据我上边说的,先选第二个人的,因为差值大,然后选数学50,标记数学已经被选完,然后剩下的人选英语即可
2 回复
分享
发布于 2021-07-23 16:53
有点动态规划的感觉,不过我也好久没做了,说的可能不太对哈,请多多指教
1 回复
分享
发布于 2021-07-23 16:54
第一条差分
点赞 回复
分享
发布于 2021-07-23 22:42
第二题应该算个公式就好了
点赞 回复
分享
发布于 2021-07-23 22:43
老哥,面的哪个部门
点赞 回复
分享
发布于 2021-07-24 13:01
上交都能凉?只要你有思路应该没有什么问题吧,研究做的如何呀?如果论文发的好应该没有问题把
点赞 回复
分享
发布于 2021-07-25 03:23
第一题来个全排列也行啊,第二题动态规划
点赞 回复
分享
发布于 2021-07-25 21:32
第一题按照(英语—数学)降序排序,前20个选英语的分数,后20个选数学的分数 第二题就广搜,顺便记录每次到达点的位置,避免重复落在一个点上
点赞 回复
分享
发布于 2021-07-27 18:08
dp[i][j]:前i个人中有j个人选数学的最大分数。 for(int i = 1; i <= 40; ++i) {     dp[i][0] = dp[i-1][0] + b[i];     for(int j = max(1, i-20); j <= min(i, 20); ++j) {         dp[i][j] = max(dp[i-1][j-1] + a[i], dp[i-1][j] + b[i])     } } dp[40][20]就是结果。
点赞 回复
分享
发布于 2021-07-28 20:49
我的第二题的python代码 def f(m,n):     m,n=abs(m),abs(n)     if m+n==1 and abs(m-n)==1:         return 3     if m==2 and n==2:         return 4     a=max((max(m,n)+1)//2,(m+n+2)//3)     return a+(m-n-a)%2
点赞 回复
分享
发布于 2021-08-11 18:58
我字节一面是棋盘跳马,我用的bfs写的,写完被他鄙视了,面试体验极差
点赞 回复
分享
发布于 2021-08-25 16:36

相关推荐

2 28 评论
分享
牛客网
牛客企业服务