面试经验01-- 爬虫工程师(字节跳动)
面试过程比较简短(30min)
主要是询问基础技能
爬取数据的方法,封禁ip,账号的处理等
接下来是询问项目经历,也会在其中穿插一些基础的知识
最后一部分就是做一道算法题,不过我也不清楚这个职位为什么要算法题。
算法题算是中等水平的
一个链表的部分反转
示例 1:
1 2 | 输入:head = [ 1 , 2 , 3 , 4 , 5 ], left = 2 , right = 4 输出:[ 1 , 4 , 3 , 2 , 5 ] |
示例 2:
1 2 | 输入:head = [ 5 ], left = 1 , right = 1 输出:[ 5 ] |
这个在leetcode上有原题可以看一下。
题解 python版
1 class Solution: 2 def reverseBetween(self, head: ListNode, left: int, right: int) -> ListNode: 3 def reverse_linked_list(head: ListNode): 4 # 也可以使用递归反转一个链表 5 pre = None 6 cur = head 7 while cur: 8 next = cur.next 9 cur.next = pre 10 pre = cur 11 cur = next 12 13 # 因为头节点有可能发生变化,使用虚拟头节点可以避免复杂的分类讨论 14 dummy_node = ListNode(-1) 15 dummy_node.next = head 16 pre = dummy_node 17 # 第 1 步:从虚拟头节点走 left - 1 步,来到 left 节点的前一个节点 18 # 建议写在 for 循环里,语义清晰 19 for _ in range(left - 1): 20 pre = pre.next 21 22 # 第 2 步:从 pre 再走 right - left + 1 步,来到 right 节点 23 right_node = pre 24 for _ in range(right - left + 1): 25 right_node = right_node.next 26 # 第 3 步:切断出一个子链表(截取链表) 27 left_node = pre.next 28 curr = right_node.next 29 30 # 注意:切断链接 31 pre.next = None 32 right_node.next = None 33 34 # 第 4 步:同第 206 题,反转链表的子区间 35 reverse_linked_list(left_node) 36 # 第 5 步:接回到原来的链表中 37 pre.next = right_node 38 left_node.next = curr 39 return dummy_node.next 40
认清现实,放弃幻想。
细节决定成败,心态放好,认真学习与工作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)