某鹅厂员工在同事圈绝望发文称:被930了,还有房贷,好绝望!
刚看到个贴子,说鹅厂有员工在同事圈发文,吐槽自己“被930”了,合同到期不续签,月底就要失业,还背着房贷,整个人都快崩溃了 。
网友们的评论挺两极,有的说大厂裁员很正常,早该有心理准备;也有人很同情,觉得房贷和生活压力太现实了。
我觉得这事吧,说到底还是职场的不确定性。所谓的“铁饭碗”越来越少,大厂光环也未必能保证稳定。房贷就像一个沉重的锚,一旦收入断了,整个人都会陷进焦虑里。换个角度看,打工人其实都在赌未来,所以更要留后手,比如积累存款、发展副业、提升技能。
不过话说回来,被930固然难受,但这也可能是个机会。与其沉在绝望里,不如趁机调整方向,毕竟大环境下,能持续增强自己价值,才有更强的安全感 【备注:文末可领最新资料】
算法题:总旅行距离
哥昨晚十一点半在公司楼下啃了个面包,脑子里还在转这个“总旅行距离”的小题,嗯…就是车子有主油箱 mainTank,还有个附加油箱 additionalTank,每消耗主油箱 5 升,就能从附加油箱挪 1 升过来(有就挪,没就算了),每升能跑 10 公里。问:最后能跑多远。听着不难对吧,但细节老容易绕。
你们知道吧,最直接的想法是边开边扣油:主油箱每次扣 5 升,里程 +50km,然后看附加桶还有没有,能不能“奖励”1 升补回主油箱。这样循环到主油箱不够 5 升为止,最后把主油箱剩的零头也跑掉(剩 x 升就再跑 x*10 公里)。写起来很顺手。
有人问我能不能别循环…也行。想象主油箱一共会触发几次“满 5 返 1”的奖励?最多 mainTank / 5 次,但受限于附加油箱存量,所以奖励次数 bonus = min(mainTank / 5, additionalTank)。每拿到一次奖励,就等于白白多了 1 升可跑 10km。注意这 1 升加回去也可能凑出新的 5 升再触发?不会的,因为规则是“每用掉 5 升立即看一次是否能转 1 升”,这个 1 升只是补回去,并不会让“已用掉的 5 升”回魂,计数已经清零到下一轮,所以奖励次数最多就是那两个数的最小值。最后里程就是 (mainTank + bonus) * 10。
classSolution{
// 推导版:O(1)
publicintdistanceTraveled(int mainTank, int additionalTank){
int bonus = Math.min(mainTank / 5, additionalTank);
return (mainTank + bonus) * 10;
}
// 模拟版:O(mainTank)
publicintdistanceTraveledSim(int mainTank, int additionalTank){
int km = 0;
while (mainTank >= 5) {
mainTank -= 5;
km += 50;
if (additionalTank > 0) { // 奖励 1 升
additionalTank--;
mainTank++; // 立即补回主油箱
}
}
km += mainTank * 10; // 把零头跑完
return km;
}
}
昨天小李还纠结“奖励会不会链式触发”,我上面说了哈,不会滚雪球;另一个坑是别忘了最后那点零头油。还有 mainTank<5 的极端情况,公式 (mainTank + bonus) * 10 里 bonus 就是 0,很稳。
mainTank=5, add=10→ bonus=min(1,10)=1 → (5+1)*10=60kmmainTank=9, add=2→ bonus=min(1,2)=1 → 100kmmainTank=1, add=100→ bonus=0 → 10km
好了我先去泡杯咖啡…等会儿谁要把这个封到工具类里我顺手再贴个单测。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html