为什么互联网公司互相称呼同学,国企互相称呼为老师?
刚看到个贴子,说互联网公司里大家互称“同学”,而国企习惯喊“老师”。
网友调侃一句:“因为同学会毕业。”哈哈,这句虽然玩笑,但也挺有深意。
我觉得这事吧,其实挺能反映职场氛围的。互联网讲究扁平、年轻化,大家都在试图营造一种“平等合作”的假象,叫同学显得轻松、没有距离感;而国企更讲资历、经验和传帮带的文化,叫老师则是一种尊重,也是等级秩序的一部分。
网友说“同学会毕业”,确实扎心——互联网变动快,今天同学,明天可能就走人了;但在国企,“老师”往往是要共事十几年的人,关系更稳。 换个角度想,这其实也没好坏之分,只是行业生态不同。
无论叫啥,能真心相处、互相帮忙,才是最难得的。【备注:文末可领最新资料】
面试题:迷宫
昨天晚上十一点多,我在公司楼下抽烟…哎别学我,冷得手抖。小李在群里怼我说,迷宫怎么写最省心,我说等下等下,我刚把外卖筷子拆开…行,边吃边说哈。
你们想象下,办公室走廊灯一闪一闪的那种,0 是路,1 是墙,从左上角走到右下角。别想太复杂,最靠谱的就是广度优先搜索,BFS。为啥?因为它一圈一圈地扩散,第一次摸到终点的路径一定最短,对吧。深搜也能走,但是容易走偏,回头路一堆,半夜人都麻了。
路线怎么“记账”
有人问我:BFS不是一层一层扫吗,那最后路径咋还原?很简单,给每个格子记个“爹”。就是那个…前驱节点,走到你这一步是从哪一格来的。到终点以后反向把爹爹爹一路抠出来,倒过来就是正着的路。就像你迷路了回想“上个路口我是不是右转多了”那味儿。
边界条件别翻车
噢对了,坑基本就三个:越界、撞墙、重复访问。第三个最阴险,你不标记 visited,队列能把你电脑风扇吹起飞。还有就是起点或终点本身是墙,那就…溜了溜了,直接返回空。
from collections import deque
defshortest_path_in_maze(grid):
"""
grid: List[List[int]] 0=路, 1=墙
返回:路径坐标列表 [(0,0), ... , (n-1,m-1)],没有就 []
"""
ifnot grid ornot grid[0]:
return []
n, m = len(grid), len(grid[0])
start, target = (0, 0), (n - 1, m - 1)
if grid[0][0] == 1or grid[n-1][m-1] == 1:
return []
q = deque([start])
visited = [[False]*m for _ in range(n)]
visited[0][0] = True
parent = {start: None}
# 四联通,想走斜线自己加
dirs = [(1,0), (-1,0), (0,1), (0,-1)]
while q:
x, y = q.popleft()
if (x, y) == target:
break
for dx, dy in dirs:
nx, ny = x + dx, y + dy
if0 <= nx < n and0 <= ny < m andnot visited[nx][ny] and grid[nx][ny] == 0:
visited[nx][ny] = True
parent[(nx, ny)] = (x, y) # 记“爹”
q.append((nx, ny))
if target notin parent:
return [] # 到不了
# 回溯路径
path = []
cur = target
while cur isnotNone:
path.append(cur)
cur = parent[cur]
path.reverse()
return path
# 小测一下
if __name__ == "__main__":
maze = [
[0,0,1,0,0],
[1,0,1,0,1],
[0,0,0,0,0],
[0,1,1,1,0],
[0,0,0,1,0],
]
p = shortest_path_in_maze(maze)
print("步数:", len(p)-1if p else-1)
print("路径:", p)
BFS 每个格子最多进队一次,所以时间 O(n*m),空间也差不多。面试官爱问“为啥是最短”,你就说:因为按层扩散,第一次到终点时走了 k 步,不存在更短的 <k,因为 <k 的层早就被扩完了,没到说明不存在。嗯,就这理儿。
实际业务里我一般会:
把障碍当成不可达权重,还是 0/1 就够了。 需要“代价”时再上 Dijkstra 或 A,A 用曼哈顿距离作启发,别用欧几里得,格子图里没必要。 路径不止一条?BFS 结束别急着 break,记录到同层耗尽,这样能拿到所有最短路线数…有人问统计方案数干嘛用?抽奖排队…算了等会儿开会我再说,手机响了我先接个电话——
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领