搜狗历年秋招笔试真题

如需获取完整资料,请点击下方链接领取《2024校招笔试真题秘籍》(实时更新中)

不收费,3人组团即可一块免费领取!限量免费10000个名额

手机端点击免费领取:https://www.nowcoder.com/link/campus_xzbs2

电脑端请扫码领取:

1、糖果

【题目描述】小明和小红都很喜欢吃糖果,今天他们一起玩一个糖果游戏。他们将装有不同数量的透明糖果盒子摆放成一个环,现在两人依次选择糖果盒子,小明先拿,且小明第一次挑选可以选择环中任意一个糖果盒子,将环分割成一列有首尾的序列,之后两人每次选择时只能从剩余的糖果盒子序列的行首或者行尾挑选,直到两人将糖果盒子全部拿完,最后糖果多的为胜者。假设两人都希望自己是最后的赢家,且糖果的总数是奇数,现给定一个糖果的环,用一个数组表示环中的各糖果盒子中糖果的数量,数组首尾相连成环,元素个数为N。请输出胜利者比失败者至少多拿多少糖果。

输入描述:

第一行:N

第2至N+1行:每行一个数,代表糖果数

输出描述:

一个数,请输出胜利者比失败者多拿多少糖果

输入样例:

4

1

55

41

2

输出样例:

54

小明先选择55,此时环从55处断开,变为序列[41, 2, 1]

小红选择行首的41,此时剩余的序列为[2, 1]

小明选择行首的2,此时剩余的序列为[1]

小红选择剩余的1。

此时小明胜利,比小红多15个糖果

【解题思路】

带博弈的动态规划。

设dp[i][j]为只考虑i~j的糖果序列,先手能比后手多的糖果数,则转移方程为

dp[i][j] = max(a[i] - dp[i+1][j], a[j] - dp[i][j-1])

为环的话,只需要枚举第一个取的糖果,即可转为序列上的问题。

 

【参考代码】

#include <iostream>
#include <vector>
using namespace std;

int predictWinner(vector<int> candies) {
	int length = candies.size();
	if (length == 0) return false;
	vector<vector<int> > dp(length, vector<int>(length, 0));
	for (int i = 0; i < length; i++) {
		dp[i][i] = candies

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024软件笔试真题+答案合集 文章被收录于专栏

本专刊由牛客官方团队打造,主要讲解名企校招技术岗位的笔试题,内容中包含多个名企的笔试真题,附有题目思路及参考代码

全部评论

相关推荐

hanliu:1. 排版与格式问题字体与对齐问题:标题和内容的字体大小差异不够明显,无法迅速吸引目光。某些文字看起来有些拥挤(比如校园经历中的“班委成员”部分)。2. 内容逻辑性模块顺序问题:实习经历放在较靠后的位置,实际上这部分内容对应聘来说更重要,建议提前突出。细节表述不够突出:比如教育背景部分的专业课程仅仅列出名字,没有说明自己在这些课程中表现如何或者掌握了什么技能,缺乏量化描述。多余内容:例如“班委成员”和“宣传委员”这类校园经历,叙述过于普通,缺乏和岗位相关的实质性贡献。,建议简写。3. 措辞专业性表达不够精准:例如“协助班长与团支书更好地为同学服务”显得较为笼统,没有实际成果的体现。用词重复:如“学习了焊接”“学习了光检”等重复词语较多,缺乏丰富的动词来展示个人能力(如“负责”“优化”“改进”等)。技能展示不足:虽然列出了UG和CAD证书,但没有明确提到这些技能如何在实际工作中发挥作用。4. 技能匹配度技能深度不足:虽然列出了掌握的软件和技术,但没有描述技能水平(如“熟练掌握”“精通”),也没有具体案例支持这些技能。缺乏岗位导向性:比如针对机械设计与制造方向,实习经历提到了“E6尾灯项目”,但没有详细说明自己在其中的技术贡献,可能会显得经验描述泛泛而谈。5. 自我评价问题表达空泛:如“具有良好的沟通协调能力”“责任心强”之类的描述太常见,没有让人眼前一亮的特点。缺乏成果支持:自我评价中的能力没有用具体项目、经历或成就来验证,可信度较弱。 兄弟加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务