985毕业,投百份简历无人问津,一气之下把薪资由2W调为3W,简历改成英文,结果出乎意料!网友评论:结果出乎意料的还是无人问津
一位985毕业的大厂员工发帖说,自己投了上百份简历,愣是没人搭理。一怒之下直接把期望薪资从2W改成3W,还顺手把简历翻译成了全英文,结果——依旧无人问津。
网友评论直接到位:“结果出乎意料的还是无人问津。”我愿称之为互联网真实语录现场。
作为一个搬砖多年、被HR驳回无数次的程序员,我太懂这种“怒而提薪”的心情了。毕竟我们打工人嘛,脾气这块虽然不值钱,但真能当调味料使。
不过我觉得吧,问题核心不在简历是不是英文的,也不是薪资开多少,而是:现在公司想要的是能便宜干活还会笑的牛马,而不是“能干+有自信”的人。
所以,别再怪自己“是不是太高估自己”,可能是你根本没低到他们的预期 🫠。换个角度想,拒绝你不是你不行,是你太贵,这也算某种程度的肯定了吧?
谁懂啊,我们这些程序员,简历越来越卷,心态越来越佛 🙏。【备注:文末可领最新资料】
算法题:公交路线
局长
明明我已经写完了后端接口,还顺手修了个Redis缓存的bug,结果Leader突然跑来说:“咱们周会上要讲算法,你来讲个公交路线的题吧!”我:?我都快成运维+测试一体化工种了,现在还要兼职算法讲解师?
不过没办法,讲就讲,咱是打工人,打工人的口号是什么?能跑通就行,能讲明白更行💪
公交路线这个题,说白了就是在一堆公交线路中,找从起点到终点最少换乘几次。你听起来是不是有点像骑共享单车+换地铁?对,就是那味儿!
题目的形式大概是这样的:
int[][] routes = {
{1, 2, 7},
{3, 6, 7}
};
intsource=1;
inttarget=6;你得找出从 1 到 6 最少要换几次车。
一开始我也想暴力来一发,把每条路线一个一个比一比。但转念一想,这不行,太low了,咱至少得上个 BFS(广度优先搜索),毕竟这个东西就像刷朋友圈,一圈一圈往外扩嘛,谁先刷到目标谁赢。
那我们咋搞?主要思路是这样的:
1. 建立一个映射关系:某个站点在哪些公交线路上出现过。 2. 从起点出发,找到所有包含这个点的公交路线。 3. 每次坐一趟公交车,相当于扩展一层,换乘一次。 4. 看在坐这些路线的时候有没有能到终点的。
这玩意儿套个BFS模板妥妥的:
publicintnumBusesToDestination(int[][] routes, int source, int target) {
if (source == target) return0;
Map<Integer, List<Integer>> graph = newHashMap<>();
for (inti=0; i < routes.length; i++) {
for (int stop : routes[i]) {
graph.computeIfAbsent(stop, k -> newArrayList<>()).add(i);
}
}
Queue<Integer> queue = newLinkedList<>();
Set<Integer> visitedStops = newHashSet<>();
Set<Integer> visitedBuses = newHashSet<>();
queue.offer(source);
visitedStops.add(source);
intsteps=0;
while (!queue.isEmpty()) {
intsize= queue.size();
steps++;
for (inti=0; i < size; i++) {
intstop= queue.poll();
for (int bus : graph.get(stop)) {
if (visitedBuses.contains(bus)) continue;
visitedBuses.add(bus);
for (int nextStop : routes[bus]) {
if (nextStop == target) return steps;
if (visitedStops.add(nextStop)) {
queue.offer(nextStop);
}
}
}
}
}
return -1;
}这个代码看起来有点长,其实你把它想象成公司里几个系统调用就行:
• graph就像Redis,把公交站点和所有出现过的线路缓存起来;• visitedStops和visitedBuses就是我们做布隆过滤器防重复操作那套思路;• steps是你换了几次乘车,或者说经历了几次人生转折🤯
在真实生活中,其实这种问题不就是我们上班通勤的日常写照吗?早上挤上1号线,到了换乘站全员下车冲刺2号线,就像你在BFS里扩一层节点,然后继续往目标点推进。
我觉得这道题妙就妙在,它虽然是图的搜索,但不是传统的点之间连边,而是“公交路线”作为中介——你不能直接从站A跳到站B,必须在公交线路允许的范围内跳,颇有点中间件的意思。
而且,Java里的HashMap + Set 组合拳发挥得淋漓尽致,谁说Java写算法不优雅?你写个HashMap模拟消息队列试试!
如果你非要暴力搜,那就相当于一个后端工程师不写缓存、数据库无索引、接口也不分页……然后系统直接崩了——你问为啥?“因为你没用BFS。”
所以总结下来,这道公交路线题用BFS简直再合适不过,换乘次数就是层数,线路就是中间的边,把站点和线路的映射理清楚,剩下的就是模板了。
顺手一提,要是你写这个题的时候在那想“要不要优化下空间复杂度”,我建议先把测试样例都过了再说,实战开发咱讲究“先跑起来,再优雅”。
写到这我突然想到一句话特别适合程序员和坐公交的人——
“不怕走弯路,就怕坐错车。”
可惜生活不像代码,错了还能回滚。
你们都做过这道题了吗?欢迎来分享你们的“公交算法人生”
最后,我为大家打造了一份deepseek的入门到精通教程,完全免费:https://www.songshuhezi.com/deepseek
也可以看我写的这篇文章《DeepSeek满血复活,直接起飞!》来进行本地搭建。
-END-
以上,就是今天的分享了,看完文章记得右下角点赞,也欢迎在评论区写下你的留言。