Python技术迷

研发工作快四年了,工资还没破两万,是我太菜了吗,想到假如在 35岁我还是这个工资,然后要毕业就头疼

刚看到个贴子,说一位做研发的,干了快四年,月薪还没破两万,自嘲是不是太菜,还脑补到35岁还拿这点钱,想想就头大。

Image

我觉得这事吧,先别急着给自己贴“菜”标签。工资只是结果,中间还隔着行业、城市、公司体量和你手上能拿得出手的成果。关键是问自己三个问题: 1)这四年,我的技术和业务,有没有实打实的成长? 2)如果现在把简历扔到市场,同级别岗位能给到多少? 3)继续在这家公司干,三年后大概率会到哪?

换个角度想,焦虑不是坏事,但别预支到35岁,把十几年的人生都一次性吓死。能做的就是:持续练硬技能,多接核心项目,多去面试看看自己的“行情”。

算法题:到达终点

昨晚十一点多吧,我在公司楼下抽烟(别学哈),我们组小李突然丢个题给我,说“哥,这个到达终点我老写崩”,我一看就那种很像线上排查的感觉:你以为是一步一步走,结果其实是“你能覆盖到哪里”这个边界问题,跟 TCP 读包卡 1024 那种“边界一错全错”味道有点像……扯远了,反正我当时脑子里就一句话:别纠结怎么跳,盯住你能到的最远位置。

题意我按最常见那版说哈:给你一个数组 nums,nums[i] 表示你站在 i 这个位置,最多能往右跳多少步,问能不能到最后一个位置。你要是用回溯去试每条路,基本就跟线上接口被重试打爆一样,分支一多就爆炸。

我一般这么想:我从 0 出发,手里攥着一个“最远可达 farthest”。遍历 i 的时候,如果 i 都已经超过 farthest 了,那就等于你人走到一个你根本到不了的位置——后面再怎么跳也没意义了,直接 False。反过来,只要 i 在覆盖范围内,就更新 farthest = max(farthest, i + nums[i]),看这个覆盖能不能把最后一格罩住。就像你在看链路日志:关键不是每一步调用细节,是“trace 能不能把后面串起来”。

代码我给你写个干净点的,别抄网上那种一堆花里胡哨的:

from typing import List

defcan_reach_end(nums: List[int]) -> bool:
"""
    到达终点(Jump Game)
    nums[i] = 从位置 i 最多能跳的步数
    返回能否到达最后一个下标
    """

ifnot nums:
returnFalse

    farthest = 0# 当前能覆盖到的最远下标
    last = len(nums) - 1

for i, step in enumerate(nums):
# i 都走不到,说明断层了
if i > farthest:
returnFalse

# 更新最远覆盖
        reach = i + step
if reach > farthest:
            farthest = reach

# 已经覆盖到终点,提前结束
if farthest >= last:
returnTrue

returnTrue# 循环正常跑完,说明一直没断层


if __name__ == "__main__":
    tests = [
        ([2, 3, 1, 1, 4], True),
        ([3, 2, 1, 0, 4], False),
        ([0], True),
        ([1, 0, 1, 0], False),
        ([2, 0, 0], True),
    ]
for arr, expect in tests:
        got = can_reach_end(arr)
        print(arr, got, "OK"if got == expect elsef"WRONG(expect {expect})")

你看这个写法,逻辑就两句:别让 i 跑出覆盖范围;覆盖范围能扩多大就扩多大。它为什么对呢……我用“人话版”解释一下:你每次更新 farthest,其实是在说“只要我能站到 i,那我就顺手把 i 能带来的最远也算进来”,这等于把所有可行跳法的结果做了个合并,合并完只保留最远那个边界。中间怎么跳不重要,重要的是“有没有断层”和“边界能不能盖住终点”。是不是有点像配 Tomcat 连接数那种——你不关心每个请求是谁,关心的是池子能顶到多少并发,池子一断就全排队崩了。

对了,很多人会在 0 的时候慌一下:nums[0]=0 还怎么玩?其实数组长度是 1 的话已经在终点了,True;长度大于 1 就直接断层 False,这个代码也自然覆盖了。还有一种坑是空数组,面试官就爱拿这个恶心人,我直接 False,你也可以按你们题库要求调整。

行了我先不说了,刚群里有人又问“为啥我用 DP 也能过但超时”,我得去回两句……哎这帮人真的是,写题写得跟线上救火一样紧张。

🔥虎哥私藏精品🔥

虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB