Python技术迷

面试用Ai作弊,被识破了.....

刚看到个贴子,说有网友面试时偷偷用AI搜答案,结果被面试官一眼识破,当场就被pass了。😂

Image

AI虽然工具很强,但真把它当救命稻草,就容易翻车。网友们评论有说“现在面试套路太深,没AI都难”,也有调侃“读稿机本机上线”。但说到底,面试不就是看你的真实水平和思路吗?遇到新问题,思考方式才是核心,照本宣科就像写代码只会Ctrl+C/V,一旦出bug根本hold不住。

从我的角度看,AI可以辅助,但不是替你思考。程序员最宝贵的还是解决问题的能力。作弊被抓,其实是给自己挖坑,后面都不好收场。说到底,脚踏实地才是王道,别指望走捷径。

总的来说还是要提升自己,AI再牛,真本事更重要。【备注:文末可领最新资料】

面试题:大礼包

正好今天空点,唠一唠这个"大礼包"问题,反正也是睡不着。

先说下这个题哈,其实意思特别生活化:有一堆商品,每个单独买都有价格,然后现在有一些"大礼包"(就是买一堆东西打包价更便宜那种),问你怎么选能花最少钱把购物车里的商品全买了。就和现实一样,比如鸡蛋牛奶卫生纸,单买肯定贵,大礼包要是合适肯定优先用礼包。

我当时想起这事儿还是因为家楼下超市,逢年过节各种礼包,价格都不一样,挑到我头疼,特别有那种必须买满减券才能用,你们懂的吧,感觉算法题就是抄生活。回来打开电脑,写了会代码,主要思路其实还真有点像"动态规划"那一套,但其实理解成"遍历所有组合"也能过。

就先拿个Python来举个简单的,假如你购物车要买[2,1,2]个A、B、C三种商品,然后有几种礼包,比如[1,1,0]卖10块,[2,0,2]卖15块,还有单买A、B、C价格都给定。这个场景其实你看着特简单,代码写起来一堆细节,我那会写的时候还老写错,结果数组越界,debug半天,差点摔鼠标。

一般人刚拿到这题第一反应是回溯,就是"暴力搜"嘛。每次尝试买一个礼包或者不用这个礼包,就递归进去,看看哪个组合能买完且花的钱最少。我第一次做的时候还真这么干了,就是代码里套个dfs(深度优先),用一个参数记录当前还差多少商品没买完,然后每选一次礼包就把对应商品数量减掉,递归下去。

但有时候暴力搜会很慢,尤其礼包和商品数量一多,内存都爆炸,电脑直接风扇狂转。后来才知道要加缓存——这其实就是"记忆化搜索"嘛,把已经算过的状态存下来,下次再遇到直接查,省得重复算。

Python里头就用个字典memo来搞定,key用元组存当前购物车商品剩余数量,value就是对应的最小花费。每次递归前先查查memo有没有,有就不用再算了,写起来大概是这样:

defshoppingOffers(price, special, needs):
    memo = {}
defdfs(cur_needs):
        key = tuple(cur_needs)
if key in memo:
return memo[key]
        res = sum([cur_needs[i] * price[i] for i in range(len(price))])
for sp in special:
            tmp = []
for i in range(len(price)):
if cur_needs[i] < sp[i]:
break
                tmp.append(cur_needs[i] - sp[i])
else:
                res = min(res, dfs(tmp) + sp[-1])
        memo[key] = res
return res
return dfs(needs)

别看就这么几行,我当时写完还自测了几个案例,光是礼包买的数量不能超过购物车里的这个坑,就卡了我快一个小时。你们不要笑,真有人会直接礼包无限用,结果比单买还便宜,这不是和现实生活反着来嘛。

整个实现流程特别像去超市买菜那种:每次你都得想,要不要用这个礼包,用完还剩什么,再递归想下一个礼包。人脑其实就这点算力,但代码能枚举所有可能。

后来群里有人问,如果礼包太多、商品太多,是不是就跑不动了?我说对,这玩意极限就是NP问题,不剪枝/不缓存,性能直接炸掉。面试官问到的话你也别死磕,实话实说,实际场景一般不会出得太变态。

其实说了半天,这类题就是锻炼大家把生活的那套最优选择,搬到代码里,怎么又快又省又不出错,特别像下厨房挑菜一样——有礼包别浪费,不能贪心随便选,但也别一根筋暴力搜死。反正,动手写一遍你就懂了,比光看思路强多了。

-END-

我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html

🔥虎哥私藏精品🔥

虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领