注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 匿名 于 2026-4-1 09:40 编辑
Compiler Optimization
十分钟之前刚刚刚面完这一轮,应该要挂了,熬夜准备了地理的3个AI coding常见题(Maze, max unique char, card game),结果遇到一个新题。
Problem Statement
给了几个folder,有test.py,test file文件和src文件。目标是优化complier 的time和mem。
example:
instruction1.txt
res1 = var1 + var2
res2 = var3 - var4
res3 = res2 + var5
res = res1 + res3
instruction2.txt
res1 = var1 * var2
res2 = var3 - var4
res3 = res2 / var5
res = res1 + res3
instruction3.txt
res1 = 10 * var2
res2 = var3 * 100 - var4
res3 = res1 / 2
res = res2 + res3
def extract_time_and_mem_cost(instruction):
TODO
return time, memunit test:
assert (extract_time_and_mem_cost('test/instruction1.txt'), 14)里面的具体数字这里有坑,我稍后说。
值得吐槽的一点是opus4.6在第一个回合聊天后宕机,interviewer让我Switch到GPT。
GPT根据test1和test2的条件实现了代码,就是简单的operator check:
('+', '-', '=')cost=1
('*', '/') cost = 5于是我顺利的把test1和test3搞定了。
但是后面test4 到 test7一直报错。直到最后5分钟interviewer才提示我看看extract_time_and_mem_cost在干嘛。他提示说那些cost number可能是错的,我就GPT,1和5是哪里来的,然后GPT说它自己推理的。然后我问interviewer 我不懂compiler,但是有univeral的定义吗?他说没有。然后我一直让GPT 重新infer,最后时间不够了。
面了meta 3次了,1次E4,1次E6,这次也是target E6。估计后面不会面meta了,剩下的coding和BQ我都不想面了。
分享下我整理的其他人的帖子
Overall summary
https://www.1point3acres.com/bbs/thread-1165303-1-1.html
MAZE
Best: https://www.1point3acres.com/bbs/thread-1153951-1-1.html
https://www.1point3acres.com/bbs/thread-1169571-1-1.html
AI coding: Maze, 一问 fix test case, path符号不能override 起始符号。。。 二问BFS 无限循环没加visited。。。 三问有的地方只能往左或右search怎么办。。。。四问有门和对应钥匙分散在maze里,门只能有了钥匙才能通过 怎么办
https://www.1point3acres.com/bbs/thread-1162056-1-1.html
Maze, find a bug without using AI, why the print is wrong, need to add a check that the current cell is empty
Fix a bug, why the maze took too long, need to add a visited hashset to record all the cells which are visited
Add door from left and right in the maze, and it can only go through the door in 1 direction. Can ask the AI to generate code to only go to 1 direction when meet a door, issue: when there is a wall next to the door, the path is blocked.
https://www.1point3acres.com/bbs/thread-1169756-1-1.html
Round 2: AI-Enabled Coding(60分钟)
这轮是Meta新推出的format,可以用AI工具辅助。
题目:Maze Solver
4个递进的问题:
Q1(无AI辅助):花了大约25分钟,有点stuck
Q2-Q4(可以用AI):全部完成
楼主之前专门准备过maze mock,所以后面几个part做得很顺。大部分人只做完2-3个part,做完全部4个是top表现。
https://www.1point3acres.com/bbs/thread-1170015-1-1.html
ai coding那个迷宫题,我记得地里有很详细的可以找一下我也是凭着记忆说一下,整个coding都是通过改代码让pass unit test,提供了ide可以直接run unit test。
第一问说不能跑ai只能自己看,不过比较简单,就是之前是把路径都打印成*,然后现在是那个开始和结束保留原来的样子,就是加个if else判断是不是开始标志和结束标志。
第二问好像是看bfs的bug啥的,很简单,没有visited这个set,所以跑不出来,加上就好了
第三问是路径里面加了标志>和<,一个好像是只能从左往右,一个是只能从右往左,它给的原始代码里面有那个move的method,就直接再move method里面加一个判断就好了
第四问就是钥匙门那个经典的,visited加个状态,用bit mask存状态
第五问是路径里面有bomb,如果你踩到bomb,周围好像半径两格内的墙都会被炸掉,思路也简单,visited再加个bomb的状态就行了,这一问我没得时间的,就直接用ai生成代码了,然后粘贴过去直接就跑过了。
https://www.1point3acres.com/bbs/thread-1162836-1-1.html
题目:Maze Solver
一共4问
第一问不用AI:bug在print的时候需要查空,如果空,打印时加”*“
第二问答案是bfs开始的时候需要查是否visited(可以用AI但其实不建议,因为很简单,但是code base有点绕,小屏幕看着容易看错bfs实际开始的地方)
第三问是bfs时加一个chute,单向门“>”,只能一边进一边出,不难但是方向容易搞晕,用AI其实能帮的有限,需要跟AI说很清楚
第四问是如果路上有key 开门,比如“a”开“A”门,这样有一个点,就是第二问的visited可能需要改,因为你在一条路捡到的“a”钥匙可能能回去开另一条路的“A”门
Max unique char
Best: https://www.1point3acres.com/bbs/thread-1154211-1-1.html
https://www.1point3acres.com/bbs/thread-1168593-1-1.html
https://www.1point3acres.com/bbs/thread-1167486-1-1.html
ai coding 抽到了maximum subset那题,前两个test cases完成,后面两个跑不完。这题前两个完成就算过,我还没见过谁跑完第三个的。所有backtracking的优化手段我都试过了,还是不行。也许DP有点希望,但是这题不是问最大子集长度,而是要打印出最大子集,就不适合用DP解,内存要爆炸。
Someone commented:
第三四问可以dp存<bitmask(number+letter用Long), Node>,bitmask number+letter用Long,并且做一下单词自身字母和数字的去重,Node里有previous指针指向前一个node这样内存不会炸,类似二维数组找路径类的输出路径作为结果的题目存previous指针的思路,并且在达到长度36的时候直接剪枝输出,三四问都可以跑过
https://www.1point3acres.com/bbs/thread-1168053-1-1.html
ai enabled coding: Find subset of words with max unique character without duplicates
我觉得这题有毒,sonnet, opus都不能给出最优解去搞定第三第四个test. 第三个test有几千个单词,第四个有一万多个单词。meta总说不考dp, 我觉得还是要复习一下,不然agent太傻,自己不能提供dp思路就挂了。
AI coding: 很幸运没遇到新题 maximum unique chr backtrack优化了三轮 完成了前两个file 第三个file 100s跑完 没时间第四个file 要想跑过应该只能换dp了
https://www.1point3acres.com/bbs/thread-1169254-1-1.html
AI coding,找最大的包含unique character的subset,基础解法先来个backtracking,第二个test case优化一下路径,比如已经找到26个字符了就return,第三个test case用DB+state tracking,需要记录上一个state的bitmap+subset,这样找到以后就能reconstruct路径,最好再预处理一下testcase,比如abc,cba这种anagram算重复的,可以加个visited去重,这轮重点不是使用AI而是展示你对AI写的code的理解和思考
https://www.1point3acres.com/bbs/thread-1166728-1-1.html
第三轮 AI Coding
新题给一个list of words,找出word包含其他word的单词
[category, cat] = category,solver已经实现过了
(1) 分析已经实现代码的时间复杂度,空间复杂度,不能用ai
(2)给出优化方案,和预计的时间和空间复杂度(不用ai),然后实现,这时候可以用ai
Card Game
https://www.1point3acres.com/bbs/thread-1167806-1-1.html
AI coding:cardgame
https://www.1point3acres.com/bbs/thread-1162755-1-1.html
AI 辅助 coding:card game
第一问:unittest一开始失败,原因是有的牌不是从桌上现有的牌里抽的,需要debug抽牌的method,确保三张牌都来自桌上的牌再抽。
第二问:写一个naive的抽牌策略。楼主说原始策略可以像3Sum一样,每次抽任意三张加起来为15的牌,保证那一轮得分即可,先不保证总分最优。
第三问:measure策略有多优化。楼主说可以simulate抽牌游戏若干次,看多少百分比的局能拿满分。面试官说可以。上述策略大约在~40%的情况下能拿满分。
第四问:让优化策略。楼主说可以backtrack,尝试所有抽牌方式,选择总分最高的那一种。改进后约 90%的牌局可以得满分。
https://www.1point3acres.com/bbs/thread-1161605-1-1.html
撲克牌四花色每個花色(1~9)總共36張牌,初始檯面上有16張牌(隨機從36張生成),三張牌湊到15點成對獲得15分(像是不同花色的5 三張 or 9 + 4 + 2),拿了三張後會補牌直到沒有牌或檯面上不能再湊對。完美條件下能湊12對 (15 * 12 = 180 分)。題目有點亂code 很大所以花了十幾分鐘大概理解
1. 修UT,面試官人很好跟我說UT(unit test)第幾行報錯,本來以為是在UT裡改但其實是Main 少了一個if else,看懂code就挺簡單的
2. 寫一個拿牌的strategy, 我內心暗想要dp,怕AI不靠譜等很久,先提 3 sum的greedy方法寫了一個,考官說可以。寫完要我run 幾次觀察得分
3. 要我寫一個UT 跑一百次遊戲看可以拿幾次滿分(180)。讓AI generate UT,然後在自己稍微改下。結果是 20/100
4. 考官問能不能進步我提DP只剩下十分鐘就讓AI生成了,沒想到一下就跑出來了code有150多行看了一眼沒認真validate就貼進去跑test結果過了,100次遊戲60次滿分。考官讓我解釋dp的思路,嗑嗑巴巴解釋了一下。考官看時間要到了最後問一下有沒有完美strategy每次都能拿到滿分,我說會沒有因為牌是隨機生成,如果初始隨機檯面上只有4 * 9, 4* 8, 4*7, 4* 6那就直接game over了
Q: 想问下,对于拿牌的strategy implementation, input 是上帝视角知道整个发牌顺序吗? 还是只知道台面上的牌?guess是后一种input?
A: 發牌順序完全隨機,input是台面上16張牌但知道牌庫就是36張牌(1-9×4)
不太確定你說的guess是什麼遊戲過程是這樣的:台面上16張牌,選三張湊成十五,隨機從牌庫裡補牌三張,一直循環到所有牌拿完或game over(無法組成15)
Run的過程就是一直呼叫strategy,判斷game over or perfect game已經寫好了
Q:扑克牌这道题有一个很重要的条件麻烦确认下:
能否选择重复的牌, 例如 5,5,5 或者1, 7, 7。还是三张牌必须要不同, 例如1,5,9, 或者 2, 6, 7 等等。
A:我寫的時候沒有考慮數字不能重複的情況,所以我寫的是前面那種,但我建議你跟面試官確認
Friend Recommendation
https://www.1point3acres.com/bbs/thread-1166671-1-1.html
我用的是Python
题目背景是Friend Recommendation
Overall感觉虽然面试官有点口音,但是感觉基本上节奏是面试官引导的,期间面试官有问big O和drive run一下
AI有Claude Opus
第一小问是fix一个什么valid_recommend function to pass the test case,面试官说这一问不能用AI很容易能fix,所以浏览了一下test case和那个什么valid_recommend function,可能还看了点别的,就发现了那个什么valid_recommend的input是一个user和一个list of user,没有判断list of user有没有包含自己,所以两行代码fix了
第二小问面试官说从这里开始可以用ai了,是去implement一个什么random_recommend function,一开始用AI然后直接paste进去不works,后来迭代了几轮后就可以了,直接贴进去,跑,it works
第三问面试官贴了一点题出来,我没来得及看,他说如何衡量一个好友推荐算法好不好,我用ai generate了几条,然后我用ai generate了一些ideas,然后面试官问ai回答里哪些能用,我去看User class有哪些attributes,它只有一个id一个currentFriends,没有各种别的什么性别生日group啥的,所以回答只有mutual friends和另一个啥,忘了,能用。然后面试官叫我用一个新的file实现mutual friends,我用ai generate code,面试官说同时generate test file,然后我照做了,然后贴进去跑。不知道有没有第三问第四问 |