阿里云3.24笔试题

只说编程题,选择题太难了,我不会

三道题都是O(n)解法:

第一题是经典dp,每一个可以选蓝色或者黄色,有各自的得分,也可以不选,但是相邻不能同色。求最大得分

dp维护蓝、黄、不选三个状态,最后求最大值即可。

第二题是一个贪心,找到两个数组完全不同的互斥区间个数(区间内对应index的数都不能相同)

维护一个两个数组同一下标数值相等的数组,在数组前push(-1),在数组后push(n,数组的长度)

然后找到维护数组相邻下标之间有多少数,设为x,则结果加上x*(x+1)/2

第三题是一个贪心,对于每一个国家必须对应一个粮食的消耗(第一个国家除外),然后找到每一个国家需要购买粮食的地方,这个地方的代价最小即可。对于国家i,从j买,花费vec[j],则开销(i-1-j+vec[j]),对于每一个i来说,只需要让(-1-j+vec[j])最小,取反也就是(j+1-vec[j])最大,对于i,维持一个[1,i-1]的最大一个即可。最后模拟累加即可

#笔试##阿里云笔试##2025暑期实习##aliyun#
全部评论
3.24注意一下
点赞 回复 分享
发布于 03-24 16:41 江苏
哥 第三题可以再解释一下吗 一直没想明白
点赞 回复 分享
发布于 03-31 17:44 香港
一百分钟三道编程题,还有选择?这也太紧张了
点赞 回复 分享
发布于 04-10 18:53 江苏

相关推荐

周述安:这都能聊这么多。别人要是骂我,我就会说你怎么骂人?他要是继续骂我,我就把评论删了。
点赞 评论 收藏
分享
7 14 评论
分享
牛客网
牛客企业服务