百度4.11笔试


#百度#
全部评论
第一题 排序然后二分 第二题 权值并查集,记录一下每个集合的大小,以及每个运动员距离,集合父节点的距离 第三题 每次操作可以看作对一个环破环一条边,再连上一条边,先算一下有多少种操作可以达到预期,然后动态规划。
8 回复 分享
发布于 2021-04-11 21:23
第二道题测试样例通过 但是整体0%
1 回复 分享
发布于 2021-04-11 21:04
第二题不是贪心吗😂
1 回复 分享
发布于 2021-04-11 22:35
最后一道编程题如何做?一直没有思路。。。。
点赞 回复 分享
发布于 2021-04-11 20:45
第二题队列的那道我用c++怎么超内存了。。用了一个vector<queue>和一个哈希表,咋优化呀
点赞 回复 分享
发布于 2021-04-11 20:49
额,第一题咋做啊,打表 + 次数相加,超时了。
点赞 回复 分享
发布于 2021-04-11 21:00
第一题超时了,有什么好办法吗
点赞 回复 分享
发布于 2021-04-11 21:03
第二题是运动员休息区域开启关闭以及查询是否在同一区域,只通过了10%,不知道为啥
点赞 回复 分享
发布于 2021-04-11 21:04
二叉树第一道题的有不超时解法么
点赞 回复 分享
发布于 2021-04-11 21:09
第三题思路是什么?
点赞 回复 分享
发布于 2021-04-11 21:09
请问你们现在是研一还是研二呀,我研一做这个感觉好难
点赞 回复 分享
发布于 2021-04-11 21:13
第一题用c++暴力就过了...
点赞 回复 分享
发布于 2021-04-11 21:17
超时是提示超时还是样例不通过啊?,第一题a,b数组双循环一直是0%。是超时还是写错了啊
点赞 回复 分享
发布于 2021-04-11 21:53
const biPart=(target,arr)=>{     let low=0,high=arr.length-1;     let count=0;     //找不到的情况下: 最后low与high相等时low总比high大1     //为什么这里不能用low<high? 因为low<high的话无法判断最后low/high的位置     //比如 1 2 4 6 6 7 找5最后low=3是一个比5大的数,找3最后low=2是一个比3小的数     //但是如果low<=high, 最后的low都是比要找的那个数大的,相当于low表示arr中比target大的数的个数!!!     while (low<=high){         let mid=Math.floor((low+high)/2);         if (arr[mid]>target){             high=mid-1;         }else if (arr[mid]<target){             low=mid+1;         }else {             //找得到的情况: 这里存在重复数字,重复时最后low=high就没有上面的考虑             low=mid; //最后用low返回             //mid>0的情况下,找到第一个target的位置             while (mid&&arr[--mid]===target){                 low--;             }             break;         }     }     //low代表arr中小于target的数字的个数     //arr.length-low则表示arr中大于等于target数字的个数     return arr.length-low; } 请问一下第一题的二分是这种思路吗
点赞 回复 分享
发布于 2021-04-11 23:11
分享下思路,第二题参赛队员之间建立有向图,(u,v)为边为1,否则为0,用深度遍历把弱于p求出个数,把一定强于p求出个数,p的名次范围则得到了
点赞 回复 分享
发布于 2021-04-12 00:25
第二题问题转化后DFS 确定这个人有几个一定比他弱,几个人一定比他强就ok。 java代码ac     public static void dfs(int[][] battles, int index, int p){         for(int i =0; i< battles.length; i++){             if(index == 0 && p == battles[i][0] && !post.contains(battles[i][1])){                 post_count++;                 dfs(battles, index, battles[i][1]);                 post.add(battles[i][1]);             }             if(index == 1 && p == battles[i][1] && !pre.contains(battles[i][0])){                 pre_count++;                 dfs(battles, index, battles[i][0]);                 pre.add(battles[i][0]);             }         }     } }
点赞 回复 分享
发布于 2021-04-12 10:00
我只有两题。。第一题是密码解密 第二题是前缀交换求不同结果。。。 看着看着都怀疑跟你们答的不是一个公司的笔试。。
点赞 回复 分享
发布于 2021-04-12 12:45

相关推荐

三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
评论
3
5
分享
牛客网
牛客企业服务