3.13那场笔试(选择+编程)
30道选择,覆盖范围很广,一半题型没见过
2道中等难度编程题:
第一个题目【归零】,给一个二进制字符串,你可以采用任何连着的1组成的二进制字符串(类似于1111, 000111,1100),让这些1与给定的二进制字符串【异或】,让他全变为0即可,问最少的操作次数:
例如:1110001,让他与1110000异或得到0000001,在于1异或得到0000000,这样最少2次
解答思路:寻找全部由1组成的子串和全部由0组成的子串,比如1110001可以划分为【111,000,1】到这里两种思路:①将0的子串变为1,然后用1111111与其异或,得到全0。②将1的子串变为0,也就是例子说的方法。取两种方法的最小值即可
由于输入问题和一些边界值问题,一路从通过18%到64%到100%
第二个题目【食物最多幸福感】,给n天,每天吃食物1和食物2的幸福感为a1,b1,一天只能吃一个食物,一个食物不能连续吃,某一天可以不吃食物。问最大幸福感。
例如:n=5, A=[1,2,3,4,5],B=[3,2,1,3,5]
方法:这里用了动态规划:
dp[i] = [今天吃食物1,今天吃食物2,今天不吃]
dp[i][0] = max(dp[i-1][1], dp[i-1][2]) + A[i]
dp[i][1] = max(dp[i-1][0], dp[i-1][2]) + B[i]
dp[i][2] = max(dp[i-1])
最后提交直接100%
#2024暑期实习##百度##测试开发工程师实习生#