字节3.28日笔试四道题

总体来说,今天这四道题的难度还是适中的,基本上属于力扣上面的中等难度题目。
第一题,问一个人在24小时内可以参加会议的最大数量,原型为力扣https://leetcode-cn.com/problems/maximum-number-of-events-that-can-be-attended/最多可以参加的会议数目。很明显是用动态规划可以解决,问题是。。。我不知道怎么对数组进行排序。。。回去多练练吧。这道题AC 60%。
第二题,可以吃到的最大寿司数量,要求不能连续吃两堆连续的寿司,原型为力扣第198题https://leetcode-cn.com/problems/house-robber/打家劫舍。本题AC
第三题,最美三角形。给定一组数据,要求在其中选取三个数组成一个三角形,要求三条边之间|a-b|+|b-c|+|c-a|和为最大值,但要求不能是等腰三角形(即不能选择两个相同的值)官方示例:输入 5(表示提供5个数)2 3 4 9 11 输出:16(选择3 9 11 作为三角形的三条边)。这道题我用的暴力,显示超时,最终AC 40%。有大佬有好的思路可以提供下。
第四题,不同路径数目,原型为力扣63题不同路径https://leetcode-cn.com/problems/unique-paths-ii/。这道题我明明做了好多遍,但只能AC 50%。。。不知道为啥。字节的测试用例一直是个谜。。。
总的来说,这次体验比昨天的网易强多了,网易真的是。。。一言难尽(感觉给智商做了个360°无差别触地式按摩),算了,不提也罢。
最后提醒小伙伴们,如果你们同时拿到了360和其他公司的笔试通知,请切记:一!定!要!先!做!360!一!定!要!先!做!360!一!定!要!先!做!360!。今天先做的字节,最后20分钟想着看看360的编程题,结果!360要求先做完选择题才能做编程题?选择题一共40道一道一分?我中途还不能退出一定要做完了才能做编程题?喵喵喵?
360选择没细看(一路B。。。),主要看了两道编程题,第一道感觉平平无奇(hhh),下面贴个第二道供大家参考,我回去了也好好看看,有思路了再在评论区留言。
。。。为啥图片传到微信是高糊的。。。算了,有时间在评论区留言吧。
最后的最后,欢迎各位小伙伴们在评论区留言与提供更好的解法与思路,祝大家(还有本菜鸡)春招/实习顺利,一路offer!
#字节跳动##笔经#
全部评论
第三题我用二分套二分过了90,排序,去重,然后枚举a,二分b,再套一层二分c,nlognlogn,正解貌似是先二分c再二分b,具体的证明过程就不太会了 第四题是容斥 + 组合数,后50分的输入范围是1e5,n方铁定是过不去的,跟开二维还是一维数组没什么关系。
3 回复 分享
发布于 2021-03-28 23:40
第一题排序重载函数写半天 本以为可以用本地ide的。。。
2 回复 分享
发布于 2021-03-28 22:31
利用Arrays工具类进行二维数组重排序 Arrays.sort(a, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { if (o1[0]==o2[0]) return o1[1]-o2[1]; return o1[0]-o2[0]; } });
1 回复 分享
发布于 2021-03-29 09:07
第一题不应该是排序然后贪心吗
点赞 回复 分享
发布于 2021-03-28 23:11
不能用自己IDE 排序就很难受
点赞 回复 分享
发布于 2021-03-29 08:29
我感觉第三题是先对读入的数据排个序,然后假设a>b>c,化简后就成了2(a-c),然后找一个使得三角形成立的b就行了
点赞 回复 分享
发布于 2021-03-29 11:33
第一题感觉是时间短的面试越多越好,可能需要对间隔时间排序,太紧张没写出来 第二题打家劫舍经典问题 第三题先从小到大排个序,然后令C最大,B次大但是不等于C,找最小的A,能构成三角形就行 第四题因为只能往左或者往下走,所以按照从左往右从上到下的顺序遍历即可,只需要储存本行和上一行的路线数目即可,遇到障碍物就置0。可惜的就是考场上没写出来,后面只能在leetcode.63尝试一下,但是LeetCode的数据量明显比字节小很多,所以不知道这个方法行不行
点赞 回复 分享
发布于 2021-03-29 11:50
360的第二道题,总感觉用dp,但是一直没找到状态定义。裂开
点赞 回复 分享
发布于 2021-03-29 15:04
360第二道题题目与解答(不保证完全正确,可以通过测试用例) 题目: /**  * 题目描述  *      X 星人发现了一个藏宝图,在藏宝图中标注了 N 个宝藏的位置。这 N 个宝库连成了一条直线,每个宝库都有若干金币。  *      X 星人决定乘坐热气球去收获金币,热气球每次最多只能飞行 M 千米(假设热气球在飞行过程中并不会发生故障),  *      此外,由于涉及上的缺陷,热气球最多只能启动 K 次。  *      X 星人带着热气球来到第一个宝库(此时热气球尚未启动),收集完第一个宝库的金币之后将启动热气球前往下一个宝库,  *      如果他决定收集某一个宝库的金币,必须停下热气球,收集完之后再重新启动热气球。当然,X 星人每到一个宝库是一定  *      会拿走所有的金币的。  *      已知每一个宝库距离第一个宝库的距离(单位:千米)和宝库的金币数量。  *      请问 X 星人最多可以收集到多少金币?  *  * 输入描述  *      第一行输入三个正整数 N、M 和 K,分别表示宝库的数量、热气球每次最多能飞行的距离 和 热气球最多能启动多少次。  *      三个正整数均不超过 100,相邻两个正整数之间用空格隔开。  *      接下来 N 行每行包括两个空格隔开的正整数,分别表示第一个宝库到某一个宝库的距离(千米)和该宝库的金币数。注意  *      第一个宝库的距离为 0.  *      输入保证所有的宝库按照到第一个宝库的距离从近到远排列。初始位置为第一个宝库。  *  * 输出描述  *      输出一个整数,表示最多可以收集金币的个数  *  * 示例  *      输入  *      5 10 2  *      0 5  *      8 6  *      10 8  *      18 12  *      22 15  *      输出  *      25  *      说明  *      在第一个宝库获取 5 个金币,消耗一次启动;在第三个金库收获 8 个金币,消耗依次启动;在第四个金库收集 12 个金币  *      共收集了 25 个金币。  */
点赞 回复 分享
发布于 2021-03-29 17:46
360第二道题题目与解答(不保证完全正确,可以通过测试用例) 解答
点赞 回复 分享
发布于 2021-03-29 17:49
楼主你好,请问你是什么岗位?
点赞 回复 分享
发布于 2021-04-17 13:34

相关推荐

头像
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
评论
8
27
分享
牛客网
牛客企业服务