进了牛马公司,调个空调温度,被开除了~
刚刷到个热帖,说有网友因为调空调温度被公司开除了,评论区直接炸锅了。我作为一个程序员,看到这事真的无语😑。
调空调说白了就是个很小的操作,结果却能影响饭碗,多少有点让人感到职场“温度”比空调还冷。
我觉得吧,这种公司基本就是把人当“工具人”,容不得一丝个性和自主。网友们有的在吐槽老板小心眼,有的说员工不懂规矩,我倒觉得,打工人本来就不是来做隐形人,合理的需求都不能提,那氛围真挺压抑的。换个角度说,这样的公司迟早留不住人才,大家谁也不是为了活受罪。
不过说到底,职场就是个价值交换,太多的情绪和面子,有时候真的没那么值钱。调个空调都能出事,下次谁还敢多说一句?建议打工人还是多长点心,能润就润,别把自己困死在“牛马”公司。【备注:文末可领最新资料】
面试题:到达终点
昨天晚上快下班的时候我在公司楼下拿着咖啡发呆,突然手机响了,是我们组那个小李,他语气特着急,说有个“到达终点”的算法题,明天要讲给实习生听,但他脑子一团浆糊。我刚想挂电话回去躺着,想想算了,帮他把思路捋一捋。
其实说实话啊,这种“到达终点”类型的题,这几年面试真挺常见。你想象一下,有一堆格子,你每次可以跳的步数,取决于你当前格子上写的数字,然后你要从第一个格子蹦到最后一个。小李还非要我用python,行吧,python就python,反正最近也没碰啥花活。
我先随便糊了一段代码,然后才发现,哎哟我擦,这题不细想真容易掉坑——你每一步能跳多远,不能一条道跑到黑,因为有的格子数字是0,你要是跳进去就死了,相当于掉水坑了。
所以我先跟小李说,最简单的办法就是暴力递归,每个点都往前试一遍,能到就行。但你知道嘛,这种写法一跑就超时了,老老实实别这么写。
后来我一边啃着煎饼一边给他发微信说,其实啊,用贪心就行,思路特简单:你每次都记录一下目前能跳到的最远的地方,然后你每走一步就更新一次,看看这一步能不能撑到最后。
我给他随手写了个代码,凑活看下吧,别指望有多优雅:
defcan_jump(nums):
max_reach = 0
for i, step in enumerate(nums):
if i > max_reach:
returnFalse
max_reach = max(max_reach, i + step)
returnTrue
然后我跟小李解释,这段代码的意思其实就跟你地铁换乘似的——你每到一个站,就琢磨下这步最多还能往前蹦多远。要是你都到不了下一个站,那你肯定卡那儿了,回家吧,别想什么终点了。
我还说,这题其实变种可多了,有的问你最少几步能到终点,有的问你能不能到终点,这题就是问你能不能,只要返回个True或者False就行。
还有个细节,实在太困了都差点说漏——要是第一个格子就是0,除非数组长度就是1,不然直接凉凉。小李说他之前就是这儿没想清楚,怪不得越写越晕。
后来他问我能不能写点注释,我说别闹了,注释那玩意儿谁认真谁就输了,你看懂逻辑就行,自己多跑两遍case,比如 [2,3,1,1,4],就一遍max_reach下来直接能看到能不能到终点。
对了我刚说到哪了?哦对,我还提醒他有些老哥喜欢用DP(动态规划)解,什么记录每个点最优啥的,我说你要真写,那时间空间都得翻倍,平时面试能过就用贪心吧,效率高,代码短,面试官还能高看你一眼。
反正这题我觉得没啥神秘的,你真要说“全面”,无非就是要注意边界情况,然后不要死磕递归,遇到0早点break,别硬顶。
-END-
我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领