百度研发岗笔试 纯纯找规律😡

编程题

第一题
给定数 n,k;从数字1-n中,选k个数。初始积分为0,如果选了i,且i+1没有被选到,则积分+1
求积分最大多少?
测试用例
n = 1, k = 1:积分为1,方案:选1,因为2没被选
n = 4, k = 2:积分为2,方案一种: 选1,3

第二题
对于字符串s,循环i 0~n-1,将第i个字符放到字符串末尾
测试用例
abcde: 第一次bcdea,第二次bdeac,第三次bdace,第四次bdaec

第三题
数组 a[n],每次+-交替
测试用例
数组 {1, 2, 3, 4}
1+2, 2-3, 3+4:  {3, -1, 7}
3-(-1), -1+7: {4, 6}
4-6: {2}

三道都是找规律,第三题模拟过20%,没看出规律
全部评论
跟我一样呢前两道a了,第三道20,一直超时。优化不了了
1 回复 分享
发布于 10-16 00:41 重庆

相关推荐

10-15 21:34
门头沟学院 Java
15道单选,5道不定项选择,3道算法题,两个小时,时间紧张,主要是算法题有些难度。选择题还是常规,数据结构(排序算法,二分查找,KMP),操作系统(Linux,磁盘调度算法,虚拟内存(最近频繁碰到)),计算机网络(HTTPS),数据库。不定项选择里,全是Java相关。算法题,难度陡然递增,2和3量大题难。第一题签到题,比较简单,确定计算最大积分公式即可。第二题,看着很容易,字符串操作类的题目,直接用暴力解析,循环n次每次将第i个字符移动到末尾,但最后超时了,过了70%多,怕时间不够先跳了,折回来分析看字符串的最大长度为10^6,如果通过StringBuilder直接删除和增加的时间复杂度是O(n),加上一层遍历时间复杂度是O(n^2),优化的点就是采用更高效的搜索树,降低删除和插入的时间复杂度,一般可以降低到O(logn),想到了平衡二叉树,那么问题就转化为了实现一个平衡二叉树,定义好其节点类以及旋转,插入,删除和遍历的操作。第三题,麻将胡牌种数的题目,蛮有意思的。整体思路就是枚举和验证,核心点也是容易超时,因此需要一些技巧来优化,首先就是dp来减少重复计算,然后就是通过剪枝来提前排除不可能的情况,由于刻子和顺子在牌种确定的情况下,可以预计算出来,减少耗时,最后就是通过位运算来判断手牌状态,加速状态转移和判断。总的来说,百度这套题,选择题常规,还算比较简单,算法题属于是,想做出来简单,思路很直接,但需要一些技巧来优化避免超时的问题,区分度确实有,我觉得还算合理,算法题2和3即使不用任何优化技巧,也能拿一半的分。 #百度求职进展汇总#
投递百度等公司10个岗位 百度求职进展汇总
点赞 评论 收藏
分享
2 3 评论
分享
牛客网
牛客企业服务