2026年腾讯软件开发工程师笔试题集.docxVIP

  • 0
  • 0
  • 约4.77千字
  • 约 15页
  • 2026-07-08 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年腾讯软件开发工程师笔试题集

一、编程基础(共5题,每题8分,总分40分)

1.选择题:数据结构与算法基础

题目:

已知一个无重复元素的数组`arr`,现需找出其中和最大的三个数的乘积。以下哪种方法最符合时间复杂度要求?

A.先排序,再计算前三个数的乘积和后三个数的乘积,取最大值

B.使用快速选择算法找到第三大的数,计算乘积

C.使用堆结构,维护前三个最大数,遍历一次数组

D.使用暴力枚举,计算所有三元组的乘积

答案:C

解析:

选项A的时间复杂度为O(nlogn),选项B为O(n);选项C使用最小堆或优先队列维护三个最大数,时间复杂度为O(n);选项D为O(n^3)。堆结构方法最为高效。

2.选择题:字符串处理

题目:

给定两个字符串`s1`和`s2`,判断`s1`是否可以通过若干次插入操作得到`s2`(插入操作可以是任意字符)。以下哪个方法是正确的?

A.比较两个字符串的字符频率是否一致

B.使用动态规划,定义dp[i][j]表示`s1`前i个字符和`s2`前j个字符的匹配状态

C.检查`s2`是否是`s1`的子序列

D.使用KMP算法判断`s1`是否为`s2`的子串

答案:B

解析:

动态规划方法可以准确判断插入关系。例如,dp[i][j]=1表示`s1`前i个字符可以转化为`s2`前j个字符

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档