搜狗后端秋招笔试真题解析:哈希表、堆与DP实战

500 line or less(最新版) 500 line or less网络版最新版,包含全部22个python高级实战项目 立即下载

每年到了春招秋招的节点,我后台都会收到一大堆同学发来的笔试题目,让我帮忙看看思路、改改代码。前两天正好有学弟甩来一份搜狗2019秋招后端工程师的第二场编程题合集,说想让我讲讲这些题到底该怎么准备、怎么答。我重新把这套题翻出来做了一遍,结合当时笔试的现场情况,把整套题的考点、思路、做题顺序还有容易踩的坑,全部整理成了这篇文章。

先说结论:这套题放到今天来看,含金量依然很高。搜狗后端笔试一贯的风格是“题量适中、单题深度足、非常看重基础数据结构和边界处理能力”。如果你正在准备后端岗位的校招笔试,或者想检验一下自己的算法基础扎实不扎实,这套题都值得拿出来认认真真做一遍。这篇文章我会把做题的完整思路、代码实现、现场取舍讲透,同时也告诉你哪些地方是最容易被扣分的。

1. 为什么这套2019年的题到现在依然值得刷

后端工程师的算法笔试,和前端、客户端、算法岗都不一样。它不追求那种“非人类”的数学推导,也不怎么考特别偏门的套题,而是更看重你对数据结构、字符串处理、排序、哈希、树、动态规划这些基础知识的综合运用能力,以及写出来的代码是否健壮、可读、能扛边界情况。

1.1 搜狗后端笔试到底在考什么

搜狗这家公司的业务线大家都很熟,搜索、输入法、地图、AI这些。它的后端笔试题目风格也跟业务强相关。我当时做完第二场的感觉就是:这套题明显偏重字符串处理和大规模数据的处理逻辑,这和搜狗做搜索、输入法、自然语言处理的底子是完全对得上的。

整套题约四道编程题,题量在秋招笔试里算中等,但每一道题的思考深度都不低。不像有些公司动辄十道选择题加两道编程题,搜狗这四道题更像是在考察你“能不能一个人在限时条件下,把一个小型工程问题拆解清楚并落地实现”。这个能力模型,和真实的后端开发日常非常接近——你在公司里写需求,本质上也是把一个模糊的问题拆清楚,然后实现它。

另外值得说的是,这份题的难度阶梯设计得很典型。从第一题的“热身题”,到最后一题的“筛人题”,梯度很明显。如果你能在一个半小时内稳定AC前两题、第三题拿部分分、第四题能写暴力解,那在当时的通过率环境下已经算很有竞争力的水平了。

1.2 从题目难度阶梯看后端工程师的能力模型

我当时做完这场笔试,回宿舍复盘的时候整理过一个表,把整套题的梯度画出来就是这样:

题目位次 建议耗时 难度 核心考点 预期目标
第一题 15-20分钟 低 哈希表、字符串、边界处理 必须AC
第二题 25-30分钟 中 排序、数组操作、双指针 尽量AC
第三题 30-40分钟 中高 动态规划、状态设计 部分分或AC
第四题 40分钟以上 高 数据结构设计、贪心+堆、大数据思想 暴力分,冲AC

这个能力模型其实很有代表性。第一题和第二题考察的是基本功,哈希表、排序、字符串操作,这些是后端开发每天都要用的东西,写不熟练说明基础不牢。第三题开始上强度,考动态规划的状态设计和边界推导,这是区分“会写代码”和“会解算法题”的分水岭。第四题则是真正的拉分题,它往往结合了贪心、堆、离线处理等更复杂的角度,需要你不仅能写出正确解法,还要有时间复杂度的敏感度。

我当时在笔试现场的策略很简单:前两题我必须拿满分,第三题如果状态转移想清楚了就直接写,第四题先写最朴素的暴力版本保底,再想优化。这个策略看上去保守,但在时间有限的情况下非常实用,直接决定了你最后的总分能落在什么区间。

2. 核心考点拆解与审题技巧

刷题最忌讳的就是拿到题目直接上手写代码。我见过不少同学,一看题目觉得“这题我见过”,结果写着写着发现漏了关键条件,整段代码推翻重来,时间全浪费了。这套搜狗题特别明显的地方就在于,它会在描述里埋很多条件,你审题不仔细,后面就会吃大亏。

2.1 字符串处理:搜狗系题目最常出现的考点

先聊字符串。这套题的第一题就是一道典型的字符串操作题,而且背景非常“搜狗”:给定两个字符串,判断其中一个能否通过重排变成另一个,如果可以,再输出重排后的某种字典序结果。这种题在LeetCode上能找到很多类似版本,但搜狗把它稍微改了一点,加入了一个“指定重点字符”的限制条件——意思是重排后某个位置必须放某个字符。

这个改动的杀伤力非常大。很多人在LeetCode上刷过“有效的字母异位词”那种题,看到这题第一反应就是“数一下字符频次不就行了吗”,结果忽略了那个关键位置的限制,导致输出全错。这其实模拟的是后端真实开发里的一种情况:需求方给你提了一个大致需求,但里面藏着一两个特殊条件,你没问清楚、没注

手把手教你用组态王KingSCADA 3.53读取S7-1200 PLC数据(保姆级图文教程) 本文提供了一份详细的组态王KingSCADA 3.53读取S7-1200 PLC数据的实战教程,涵盖从硬件连接到软件配置、变量映射到故障排查的全流程。特别针对初学者常见问题提供解决方案,帮助工程师快速实现稳定通信,提升工业自动化系统效率。 阅读详情

相关推荐

伺服电机入门01

编码器输出 旋转信号 , 接收端: 使用ADC 捕捉旋转信号 ,转成数字信号,驱动器得到数字处理, 因为信号量是模拟信号, mcu mpu 等芯片通常内部处理是数字,通过adc 得到数字cpu 才能识别 传输过来的pos 等信息。IPM 芯片示例, IRAM256A 这个芯片已经停产,有换新的,,下面示例来自stmbl 高功率方案,4 步进电机 有全步控制,半步控制 ,微步控制,FOC控制,步进电机也是可以做伺服系统的。以下面几种信号是可以细分,也就是通过细分增加编码器的分辨率,

qq_25160559的博客 964

人形机器人硬件开发:骨架系统设计全攻略

本文以人形机器人骨架系统为核心研究对象,系统解析其从理论建模到工程实现的全流程设计方法。通过融合刚体力学、材料科学与机器人控制理论,构建"概念基础-理论框架-架构设计-实现机制-实际应用-高级考量-综合拓展"的七层分析体系。重点覆盖运动学/动力学建模、轻量化结构设计、关节模块集成、多物理场耦合优化等关键技术,结合波士顿动力Atlas、本田ASIMO等经典案例,提供从原型设计到量产验证的工程实践指南。

AI天才研究院 1856

MobaXterm-SSH远程连接Ubuntu

我们常常在公司的服务器上面的虚拟机进行交叉编译,所以才需要我们用远程终端工具MobaXterm去接入虚拟机。然后把我们在window用VScode编辑好的代码拖拽上传到服务器,等待服务器编译完把生成的可执行文件从服务器拖拽下来,烧录到板子运行。

weixin_50257954的博客 3463

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(2)- 核心控制消息;会话管理;测距会话管理

测距是UWB最核心的应用。为了方便应用调用测距接口,FIRA统一了UCI命令格式,这样各个厂商可以互相兼容。

Ankie资深技术项目经理 1270

30. 如何使用 SEGW 的 redefine 功能对 SAP 标准 OData 服务进行扩展

SAP 发布了很多标准的 Fiori 应用,可以通过笔者的文章里提到的进行浏览。比如 My Opportunities 就是 SAP CRM 领域的一个 Fiori 应用:下图是 Opportunity 明细页面的 Info 标签页:假设我们想在这些标准字段的末尾增添一个新字段 Created By,用来维护当前 Opportunity 的创建者。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1142

电容式三点式振荡电路/电感式三点振荡电路基础知识及Multisim电路仿真

摘要:三极管振荡电路利用放大特性与正反馈实现自激振荡,需满足巴克豪森条件(增益≥1,相位匹配)。核心由放大级、反馈网络、选频网络和稳幅环节构成。主要分为三类:1)LC/RC正弦波振荡电路(如电容三点式、电感三点式),输出高频/低频正弦波;2)多谐振荡电路,通过电容充放电产生方波;3)张弛振荡电路,生成锯齿波等。设计需关注相位匹配、增益控制和元件适配。LC振荡频率由谐振参数决定,RC振荡由时间常数控制。稳幅机制通过非线性或主动元件维持等幅输出。该电路在信号发生、时钟源等领域有广泛应用。

XU157303764的博客 2013

2026.1.11:WSL2中Ubuntu发行版的完全卸载干净指南

摘要:本文详细介绍在WSL2中彻底卸载Ubuntu发行版的步骤。首先通过wsl -l -v确认安装的发行版,使用wsl --terminate终止运行后,推荐使用wsl --unregister命令完全删除发行版(包括所有数据)。还可手动检查残留文件位置(如%LOCALAPPDATA%目录),并提供了备份建议(使用wsl --export)。最后说明验证卸载的方法和可选的高级重置操作。整个过程确保彻底清理相关数据并释放磁盘空间。(

拥抱具身智能,昇腾Ascend C 2362

单片机设计具备断电记忆功能的计时器

本文介绍了如何设计一款具备断电记忆功能的计时器,利用单片机和EEPROM存储器实现了计时器值的保存和恢复。当然,在实际的设计中还需要考虑其他因素,如电源管理、时钟精度等,以确保计时器的正常运行和准确性。选择合适的单片机:在设计计时器时,我们需要选择一款具备存储功能的单片机,以便在断电后能够保存计时器的状态。可以优化显示方式,使用更加直观的界面来展示计时器的值;函数中,我们首先从 EEPROM 中读取计时器的初始值,然后在一个无限循环中每秒钟增加计时器的值,并将新的值写入 EEPROM 中。

RlDart的博客 1089

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: Test-Time Scaling 与 Verifier-Free:多信号共识实现推理增强
下一篇: Stata多元线性回归实战:从模型构建到异方差处理与逐步回归
weixin_33913332
博客等级 码龄11年 6452粉丝 1163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值