- 1
- 0
- 约5.07千字
- 约 7页
- 2026-03-12 发布于河北
- 举报
ACM基础试题及答案
试题一:数组中的多数元素
题干
给定一个大小为n的整数数组nums,其中多数元素是指在数组中出现次数大于?n/2?的元素。假设数组是非空的,并且给定的数组总是存在多数元素。请找出这个多数元素。
输入示例:nums=[3,2,3]输出:3
输入示例:nums=[2,2,1,1,1,2,2]输出:2
提示:n的范围为[1,50000]
解答思路
本题最直观且高效的思路是“摩尔投票法”,核心逻辑是利用多数元素出现次数超过一半的特性:每次找出一对不同的元素并相互抵消,最后剩下的元素必然是多数元素。该方法时间复杂度O(n),空间复杂度O(1),适合大规模数组。
步骤拆解:
初始化两个变量,count记录当前候选元素的计数(初始为1),candidate记录候选元素(初始为数组第一个元素);
遍历数组从第二个元素开始:
若当前元素与candidate相同,count加1;
若不同,count减1;
当count减至0时,更新candidate为当前元素,同时将count重置为1;
遍历结束后,candidate即为多数元素(题目保证存在,无需额外校验)。
代码实现(C++)
cpp
#includeiostream
#includevector
usingnamespacestd;
intmajorityElement(vectorintnums){
intcandidate=nums[0];
intcount=1;
for(inti=1;inums.size();i++){
if(nums[i]==candidate){
count++;
}else{
count--;
if(count==0){
candidate=nums[i];
count=1;
}
}
}
returncandidate;
}
intmain(){
intn;
cinn;
vectorintnums(n);
for(inti=0;in;i++){
cinnums[i];
}
coutmajorityElement(nums)endl;
return0;
}
测试用例
测试用例1:输入3323→输出3
测试用例2:输入72211122→输出2
测试用例3:输入15→输出5
试题二:最长回文子串
题干
给定一个字符串s,找到s中最长的回文子串。回文子串是指正读和反读都一样的字符串,子串是字符串中连续的字符序列。
输入示例:s=babad输出:bab(或aba,两者均正确)
输入示例:s=cbbd输出:bb
提示:s的长度范围为[1,1000],s仅由数字和英文字母组成
解答思路
回文子串的核心特性是“中心对称”,因此采用“中心扩展法”最为直接(避免动态规划的额外空间消耗,且逻辑易理解)。思路是:以每个字符(奇数长度回文的中心)或两个相邻字符(偶数长度回文的中心)为起点,向左右两侧扩展,记录最大回文子串的起始位置和长度。
步骤拆解:
初始化两个变量,start记录最长回文子串的起始索引,maxLen记录最长长度(初始为1,因为单个字符必然是回文);
编写一个辅助函数expand,参数为左边界l和右边界r,功能是向左右扩展,返回当前回文子串的长度;
遍历字符串每个字符,对每个字符分别执行:
以当前字符为中心(奇数长度),调用expand(i,i);
以当前字符和下一个字符为中心(偶数长度),调用expand(i,i+1);
取两次扩展得到的最大长度,若大于maxLen,则更新maxLen和start;
遍历结束后,截取s从start开始、长度为maxLen的子串,即为结果。
代码实现(C++)
cpp
#includeiostream
#includestring
usingnamespacestd;
classSolution{
public:
stringlongestPalindrome(strings){
if(s.size()2)returns;
intstart=0,maxLen=1;
autoexpand=
您可能关注的文档
- A2驾驶证科目一考试题及答案.docx
- A3驾照理论考试题库及答案.docx
- A3科目一考试题库及答案.docx
- ACAA考试题库及答案.docx
- ACCA 典型试题及答案解析.docx
- ACCA典型考试题目及答案.docx
- ACCA核心科目考试题型及答案解析.docx
- ACM竞赛试题及答案.docx
- ACT考试典型题型及答案解析.docx
- AMC10模拟试题及详细答案.docx
- 散文题型03 理解分析词句(题型专练)(全国通用)(解析版)-2026年高考语文二轮复习讲练.docx
- 考前押题10 阅读理解之应用文——关注生活 学以致用(原卷版)(押题训练)2026年高考英语阅读理解突破策略及押题(全国通用).docx
- 清单04 综合性学习之语言表达(仿写邀请转述劝说) 活动策划(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 清单09 古诗文对比阅读之内容 情感 写法对比 语言 炼字 拓展探究(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 小说易错02 重点情节理解偏差(选择题)(易错专练)(全国通用)(原卷版)-2026年高考语文二轮复习讲练.docx
- 专题01 声现象(题型专练)(全国通用)(原卷版)2026年中考物理二轮复习讲练.docx
- 清单08 文言文(议论类 书信应用类)阅读之论点把握 文体特点(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 清单11 记叙文阅读之朗读设计 表达技巧 主旨情感 开放探究(知识 方法 能力清单)(解析版)-2026年中考语文二轮复习讲练(全国通用).docx
- 语言清单05 语法填空中的词类(五)无提示词--连词(全国通用)(原卷版)2026年高考英语二轮复习讲练.docx
- 第04讲 想象探索与科学精神(《西游记》《海底两万里》《昆虫记》全国通用(讲义)(解析版)2026年中考语文一轮复习讲练.docx
原创力文档

文档评论(0)