找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

5483

积分

1

好友

747

主题
发表于 2 小时前 | 查看: 2| 回复: 0

软通外包开始盯着211、985看了,这味儿一下就冲上来了。外包岗,活没少干,锅没少背,流程一套接一套,结果门槛先给你拉成校招大厂那样,多少有点离谱。

社交媒体帖子截图:软通外包现在都要211、985了吗?

网友说得也挺损:这是想用民企的价,挑大厂的苗。还有人补刀,说现在不是招人,是在简历里开盲盒,先把学校卡死,省得后面麻烦。

我看这事最扎心的,不是它要名校,是它明明给不了对应的体面,还特别爱端着。真有本事的211、985,转头就去更像样的平台了,谁跟你在外包池子里磨流程、对接口、熬上线。最后苦的是普通本科,连进场资格都快没了。HR那边估计也难,业务想要便宜耐用还高配,这不就是让人拿着买菜钱去点满汉全席。

算法题:生命游戏

这题一上来,很多人先把二维数组整张复制一份,然后八个方向挨个数。能过,但我第一眼一般先看两件事:一是边界怎么少写点脏判断,二是能不能原地做,别每轮都开新盘子。生命游戏这种题,数据量一大,反复拷贝矩阵其实挺笨的。写得再工整,也还是笨。

题目的麻烦点不在规则,规则就四条,麻烦在“同时更新”。你如果边遍历边直接改成 0 和 1,后面的格子读到的就不是上一轮状态了,结果一定串。

这种场景我更喜欢打标记,先借两个中间值把“旧状态”和“新状态”都塞进去:

def gameOfLife(board):
    m, n = len(board), len(board[0])
    dirs = [(-1, -1), (-1, 0), (-1, 1),
            (0, -1),           (0, 1),
            (1, -1),  (1, 0),  (1, 1)]

    for i in range(m):
        for j in range(n):
            live = 0
            for dx, dy in dirs:
                x, y = i + dx, j + dy
                if 0 <= x < m and 0 <= y < n and abs(board[x][y]) == 1:
                    live += 1

            if board[i][j] == 1 and (live < 2 or live > 3):
                board[i][j] = -1  # 原来活,现在死
            elif board[i][j] == 0 and live == 3:
                board[i][j] = 2   # 原来死,现在活

    for i in range(m):
        for j in range(n):
            if board[i][j] > 0:
                board[i][j] = 1
            else:
                board[i][j] = 0

这里 -12 不是乱拍脑袋写的。关键是看邻居时,得认“上一轮谁是活的”。所以判断活细胞不能写 board[x][y] == 1,要写成:

abs(board[x][y]) == 1

因为 -1 说明它上一轮还是活的,只是这一轮准备死。这个地方我见过不少人写漏,样例一过,自测几组也像回事,提交就翻车。

再看一眼规则,其实就是:

  • 活细胞周围活邻居少于 2,死
  • 活细胞周围活邻居是 2 或 3,活
  • 活细胞周围活邻居大于 3,死
  • 死细胞周围活邻居恰好 3,活

所以真正的核心代码,只有这几行状态转移。别把简单题写成状态机大工程。

顺手拿个例子跑一下:

board = [
    [0, 1, 0],
    [0, 0, 1],
    [1, 1, 1],
    [0, 0, 0]
]

gameOfLife(board)
print(board)
# [[0, 0, 0], [1, 0, 1], [0, 1, 1], [0, 1, 0]]

这题如果面试里让我讲,我不会上来扯什么“细胞自动机思想”。先把“同时更新”说清楚,再把原地标记讲明白,基本就够了。




上一篇:Claude Code 不再为 Pro 用户开放?Anthropic 回应:仅对 2% 新注册用户测试
下一篇:马斯克:TeraFab将采用Intel 14A先进制程,特斯拉攻研发,SpaceX管量产
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-25 12:07 , Processed in 0.800388 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表