某211大学秋招出现cb(擦边)直播公司招聘 网友:连牛马都做不成了,改做鸡鸭了
刚看到个贴子,说某211的秋招现场竟然出现了“擦边直播公司”,网友直接吐槽:“连牛马都做不成了,改做鸡鸭了。”
这句话虽然扎心,但也反映出现实的无奈。现在就业市场确实卷到离谱,很多公司打着“新媒体”的旗号,实际上擦边打赏那一套早就玩烂了。
我觉得吧,这事不能只怪学生。很多人只是想找份体面工作,结果被坑去做“灰色内容”,这是就业环境的问题,不是年轻人的问题。网友骂归骂,但这背后其实是学历贬值和岗位失衡的叠加效应。
换个角度想,能进211的学生不是不努力,是市场越来越畸形。希望学校、平台都多长点心,别让这些灰产业有可乘之机。
算法题:到达终点数字
到电梯口的时候…哎等等我先把矿泉水拧上。好,继续。这个题叫「到达终点数字」,就是那个…嗯…你从 0 出发,第 i 步必须走 i 格,可以往左也可以往右,问走几步能恰好到 target。比如 target=3,走 +1、+2 两步就到了;target=2 就有点怪,要 3 步:+1、+2、-3(或者 -1、+2、+3,总之 3 步)。
昨天晚上十一点多在客厅地上画格子,我家小李…不是,我们组那个小李在群里问,我说别暴力回溯了,走 k 步最多能覆盖的“正数距离”是 S=1+2+…+k = k*(k+1)/2,对吧。因为方向你随便选,所以只要 S ≥ |target|,就“差不多能到了”。差哪?差的是奇偶性:你把其中若干步从“向右”翻成“向左”,等价于把总和 S 减去 2×(被翻的步数之和)。所以能不能正好到 |target|,取决于 (S - |target|) 是否是偶数。偶数就行,奇数就不行,要再多走几步把奇偶性调对。
结论
1)先把 target 取绝对值,方向对称的。 2)找最小的 k,使得 S ≥ target。 3)如果 (S - target) 是偶数,那答案就是这个 k;如果是奇数,就再往前走:
再走 1 步,S 变成 S+(k+1),奇偶性会反过来(奇↔偶); 若还是不对,再走 1 步(也就是 +2 步),S 再加 (k+2),两次翻转把奇偶性调成我们想要的。 所以“最多多走两步”这句话你先记住,面试官爱问。
Java 代码
publicclassReachNumber{
publicintreachNumber(int target){
long t = Math.abs((long) target); // 防溢出,虽然一般用不到
long sum = 0;
int k = 0;
while (sum < t) {
k++;
sum += k;
}
// 如果差值是奇数,就继续加,直到变成偶数(最多再加两次)
while (((sum - t) & 1L) == 1L) {
k++;
sum += k;
}
return k;
}
// 小测一下
publicstaticvoidmain(String[] args){
ReachNumber r = new ReachNumber();
System.out.println(r.reachNumber(3)); // 2
System.out.println(r.reachNumber(2)); // 3
System.out.println(r.reachNumber(-4)); // 3: +1,+2,+3 再把 2 变方向
}
}
为啥“最多两步”就够?
这个…口胡一下就行:当前差 d = S - target。d 为奇数时,多走一步,S 加 (k+1),d 的奇偶性就翻转;若仍不行,再走一步再翻一次。翻两次必定从奇→偶(或者偶→偶),所以两步封顶。不是玄学,是模 2 的加法而已。
复杂度和边界
时间 O(√|target|),因为 1+…+k ≈ k²/2;空间 O(1)。边界像 target=0 返回 0;负数直接取绝对值就好。
两个易错的小坑
就是那个…第一,sum 用 long 更稳,不然 target=10^9 时你心里没底。第二,不要写成 while(sum <= t)…会让 k 偏大一步,记得配合奇偶校验那段一起看。
我先去给猫添个粮…你们自己把这个背下来,面试官如果追问“证明”,就把“翻方向等价于减去一个偶数”这句抛过去,基本够用了。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html