第121章 T厂技术一面(2/2)
heapq.heapph(heap,(heightMap[i][n-1],i,n-1))
visited[i][0]=visited[i][n-1]=True
forjrange(1,n-1):
heapq.heapph(heap,(heightMap[0][j],0,j))
heapq.heapph(heap,(heightMap[-1][j],-1,j))
visited[0][j]=visited[-1][j]=True
dires=[(0,1),(0,-1),(1,0),(-1,0)]
water=0
whileheap:
height,x,y=heapq.heappop(heap)
fordx,dydires:
nx,ny=x+dx,y+dy
if0<=nx<and0<=ny<nandnotvisited[nx][ny]:
visited[nx][ny]=True
#如果相邻格子比当前边界矮,可以接水
water+=ax(0,height-heightMap[nx][ny])
#新边界的高度是ax(当前边界高度,相邻格子高度)
heapq.heapph(heap,(ax(height,heightMap[nx][ny]),nx,ny))
returnwater
运行,再次AC。
王磊看着结果,沉默了几秒。然后他抬起头,笑容更明显了些:“两道Hard题,全部一次AC,而且时间控制得很好。林先生,你的算法功底比很多科班出身的候选人还要扎实”。
“谢谢”。林晨松了口气,但不敢放松——他知道,算法只是门槛,真正的重点在后面。
果然,王磊将iPad放到一边,身体前倾:“那我们聊聊项目吧。你简历上写的这个‘智能量化投资系统’,我挺感兴趣的。一个做了十年跨境电商的人,怎么想到做这个”?
林晨知道,展示价值的时刻到了。
他打开自己带来的笔记本电脑,调出系统的架构图:“其实逻辑是相通的。跨境电商要做库存预测、价格优化、用户行为分析,本质也是数据驱动决策。我失业后开始学AI,就想能不能把机器学习用在投资上”。
他切换到系统界面——这是他自己开发的Web端,简洁的深色主题,左侧是菜单栏,中间是K线图和策略信号。
“系统分为几个模块”。林晨开始讲解,“数据层,我从多个数据源获取A股、基金、期货、外汇的实时和历史数据,用PySpark做清洗和预处理。特征工程部分,我提取了上百个技术指标,包括均线、MACD、RSI、布林带,还有一些自己设计的因子”。
王磊认真听着,偶尔点头。
“模型层,我用了集成学习。基础模型包括LSTM、GRU这些时序模型,还有XGBoost和LightGBM。但不是简单堆叠,我设计了一个元学习器,动态评估每个子模型在不同市场状态下的表现,分配权重”。
“怎么评估市场状态”?王磊问。
“我用无监督学习做了聚类”。林晨切换到另一张图,“根据波动率、成交量、行业轮动速度等维度,把市场分为震荡市、单边上涨、单边下跌、高波动四种状态。每种状态下,不同策略的有效性差异很大”。
“有意思”。王磊眼睛亮了,“那风控呢”?
“三层风控”。林晨点开风控模块,“第一层,策略层面,每个策略都有最大回撤阈值,触发就暂停。第二层,账户层面,单日亏损超过2%或周亏损超过5%,全仓降杠杆。第三层,人工干预接口,我可以随时手动平仓”。
他顿了顿,补充道:“系统运行半年,累计收益率86%,最大回撤7.2%”。
王磊挑了挑眉:“实盘”?
“实盘”。林晨点头,“我用的是自己的钱。代码可以骗人,但账户净值不会”。
这句话让王磊笑了:“说得对。那你在开发过程中遇到的最大技术挑战是什么”?
林晨想了想:“数据一致性。金融市场数据来源多,格式不一,还有停牌、除权除息、合约换月这些特殊情况。我花了大量时间构建数据管道,确保输入模型的数据是干净、连续、可复现的。另外就是实盘交易时的延迟和滑点问题,我接入了券商API,但中小券商的接口稳定性一般,需要做重试和容错”。
两人就这样聊了四十多分钟。从模型细节到工程实现,从投资理念到技术选型。王磊问得很细,有时甚至会追问某个参数为什么设成0.3而不是0.25。林晨一一作答,有些地方他承认还在优化,但思路是清晰的。
十点五十分,王磊看了眼时间:“差不多了。我这边技术评估没问题,算法和项目都超出预期。接下来会有二面,应该是我们总监陈博士亲自面,他可能会问得更深,尤其是AI底层的一些东西”。
“谢谢王老师”。林晨起身。
“别客气”。王磊也站起来,再次握手,“说实话,你这个转型案例挺励志的。期待和你做同事”。
走出会议室时,林晨感觉脚步轻快了许多。
走廊里人来人往,年轻的程序员们端着咖啡匆匆走过,讨论着模型训练和线上问题。阳光透过落地窗洒进来,整个楼层明亮而充满活力。
他走到窗边,望向楼下。深南大道车流如织,远处腾讯大厦的玻璃幕墙反射着耀眼光芒。这座城市的脉搏,他曾经以为自己已经脱节,但现在,他又一次站在了核心地带的建筑里,用代码证明了自己的价值。
手机震动,是苏婉发来的微信:“面试怎么样”?
林晨打字回复:“一面过了,聊得很好。面试官说期待做同事”。
几乎秒回:“太好了!我就知道你可以!乐乐说晚上要吃大餐庆祝”!
看着屏幕上的字,林晨嘴角扬起。他想起昨晚苏婉说的话——你不是在求职,是在寻找能发挥价值的平台。
也许,T厂就是这个平台。
但下一关,是陈博士。
林晨听说过这位技术总监的名声:严谨、深刻、喜欢追问本质。他会问什么?会如何看待一个半路出家的AI工程师?
电梯下行时,林晨看着楼层数字跳动,心里那个问题逐渐清晰:
当一位追求算法极限的科学家,遇见一个用代码解决实际问题的工程师,会碰撞出怎样的火花?
他不知道答案。
但他已经准备好了。