字节笔试20210613

3道编程题

1. 二叉树最大权值和
给定一颗具有n节点的完全二叉树,需要从这棵树中选择一部分节点,求其最大权值和
规则:如果选择了一个节点的任意子节点,则不可以选择这个节点。求这部分节点的数字和最大值。

2. 感染人群
求给定N个人被感染和人与人之间的接触关系下,可以覆盖所有被感染人群,且人数最少的最优路径

3. 座位安排
给定人数情况下,求座位数;
规则:不能有两个人挨着坐,每个人都按照观察最长连续空座位,然后选中间那个位子坐(如果有多个满足需求则取左边个)。

#笔试题目##字节跳动#
全部评论
太难了
2 回复 分享
发布于 2021-06-13 20:51
一题都没过,我太菜了
2 回复 分享
发布于 2021-06-13 21:04
大佬们发点思路,让在下学习学习。知耻而后勇,来年再战
2 回复 分享
发布于 2021-06-13 21:27
第三题我也没想出来,太菜了。 后面和朋友讨论了一下,想到了用动态规划的思路,想leetcode找到类似的题试试,不知道有大手子知道哪里找到这题吗?
1 回复 分享
发布于 2021-06-13 21:27
大佬们 这是啥笔试呀?实习还是春招还是提前批?
1 回复 分享
发布于 2021-06-16 20:16
第三题的测试用例是啥啊 懵逼 本地1-10的case都过了 测试用例通过还是0%
点赞 回复 分享
发布于 2021-06-13 21:06
第三题是什么思路啊😭
点赞 回复 分享
发布于 2021-06-13 21:12
第一题树dp只过了26.67%的样例。。。。😅
点赞 回复 分享
发布于 2021-06-14 16:12
有没有大佬给下第一题思路啊
点赞 回复 分享
发布于 2021-06-15 09:19
提供个二维dp的方法,主要就是记录一下,i个位置中间左半部分最后一个和中间右半部分最后一个有没有人,有人减掉就可以了。代码太长了,贴不下,给大家看个核心部分吧。 初始化100000个座位的情况,用哈希表存第一次出现的值,二维dp数组,dp[i][0]表示i个座位最多坐多少人,dp[i][1]表示,i个座位的情况下,第一个位置有没有坐人,dp[i][2]表示,i个座位的情况下,最后一个位置有没有坐人,将作为拆分成中间一个,中间左边的座位left和中间右边的座位right。这样dp[i][0]=dp[left][0]+dp[right][0]+1,再判断left最后有没有人,right第一个有没有人,有人就--; //前面会初始化dp数组0-5,写不下了 int temp = 3; for (int i = 6; i < 100000; i++) { if (i % 2) { int left = i / 2, right = i - left - 1; dp[i][0] = dp[left][0]+ dp[right][0]+ 1; dp[i][0]-= dp[left][2] ; dp[i][0]-= dp[right][1]; dp[i][1] = dp[left][1]; dp[i][2] = dp[right][2]; } else { int left = (i / 2)-1, right = i - left - 1; dp[i][0] = dp[left][0] + dp[right][0] + 1; dp[i][0] -= dp[left][2]; dp[i][0] -= dp[right][1]; dp[i][1] = dp[left][1]; dp[i][2] = dp[right][2]; }                 if (dp[i][0] > temp) { temp = dp[i][0]; hashmap.insert(pair<int, int>(temp, i)); } } //最后直接在哈希表里查询 问一下大佬们,题目中n是10^18,我试了下long long,直接爆了😂
点赞 回复 分享
发布于 2021-06-15 11:09
这题链接在哪里呀
点赞 回复 分享
发布于 2021-06-25 15:07
22届互联网秋招交流,895263517,美团字节快手百度京东腾讯正式员工强力内推,全程跟进进度,简历指导问题解答,大家快来报团取暖呀~
点赞 回复 分享
发布于 2021-07-09 20:32

相关推荐

有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
评论
7
35
分享
牛客网
牛客企业服务