hr直接怼41岁应聘者,都这年纪了还乱投简历。。
刚刷到个帖子,说有家服装公司HR直接怼41岁求职者:“都这年纪了还乱投简历”,结果人家是海归大厂设计师,直接反怼,HR秒怂取消面试。说实话,作为程序员看到这种场面,真是无语😑。
我觉得这事吧,年纪大点怎么了?技术行不行,履历摆那,难道不是靠本事说话?有些HR就喜欢拿着那点权力自以为是,自己工资也不高,还把公司当自家后院,年龄歧视玩明面上,属实不职业。网友都在骂这HR没格局,其实说到底,职场拼的是价值,谁不是靠能力吃饭?有些人只看表面,根本不懂“被利用的价值才有人尊重你”这句话。
不过话说回来,职场套路多,别光看门槛,还是要有点底气。【备注:文末可领最新资料】
面试题:每个人戴不同帽子的方案数
题意就是:有n个人,每个人都有一堆他可以选的帽子,帽子编号1到40(一般不会太大哈),问一共有多少种方案能让每个人都戴一顶帽子,而且每个帽子只能戴在一个人头上,不能重复——其实这不就是变种的分配问题嘛。和什么“分糖果”“分椅子”差不多套路,但是帽子和人之间还不是一一匹配的。
那你看,有的人能戴的帽子特别多,有的人只有一两顶合适。暴力搜索肯定是不现实的,排列组合那个量级直接爆炸。所以啊,正常思路就两条路:要么你用回溯暴搜+剪枝,要么你状态压缩DP走一波。
我那天在地铁上,手机电快没了,就随手在微信里敲了段伪代码,其实你看核心思路—— 因为帽子总数最多40,你完全可以把“每个人是否已经分配好帽子”用一个二进制数来表示,假如有3个人,状态000表示都没戴,011表示2号3号戴了,111表示都戴了...这个位操作老舒服了。
然后定义一个dp数组,dp[state]表示当前“哪些人已经戴了帽子”的情况下,有多少种分配方法能走到这一步。初始的时候dp[0]=1,剩下的就靠你递推。
每顶帽子从1枚举到40枚,对每个人都检查他能不能戴这顶帽子,如果能戴、并且他当前还没分配,那就可以把他加进当前状态里面,状态转移。
脑子卡住了哈...不对,我补一下,举个例子。比如有4个人,当前状态是1010,意思是1号和3号已经戴了,2号和4号还没戴。你现在枚举一顶帽子,发现2号能戴这顶帽子,那你就把状态从1010转移到1110,dp[1110]要加上dp[1010],意思就是又多了一种新分法。
代码其实很紧凑,这种题其实就两层循环,外面枚举帽子,里面枚举人头加位运算。代码大致这样,Python写着特别舒服:
defnumberWays(hats):
from collections import defaultdict
n = len(hats)
hat_to_people = defaultdict(list)
for person, hat_list in enumerate(hats):
for hat in hat_list:
hat_to_people[hat].append(person)
MOD = 10**9 + 7
dp = [0] * (1 << n)
dp[0] = 1
for hat in range(1, 41):
ndp = dp[:] # 拷贝一份旧的,防止状态污染
for state in range(1 << n):
if dp[state] == 0:
continue
for person in hat_to_people.get(hat, []):
ifnot (state & (1 << person)):
ndp[state | (1 << person)] = (ndp[state | (1 << person)] + dp[state]) % MOD
dp = ndp
return dp[(1 << n) - 1]
你看,这种代码其实实现起来一点都不难,但是一不小心就容易写错,我当时还因为位运算多加了个括号,调试半天才发现问题...说实话,老铁要是刚学Python,不建议你第一次碰就写这么多位操作。
我为啥记得清楚,因为当天晚上回家媳妇还跟我说“你怎么坐地铁还在群里骂人?”,其实是我们几个讨论帽子分配DP,一边说“这SB题怎么写”一边互相发状态码,搞得她以为我在吵架...
而且吧,这类题一般会出在那种“组合优化”专题,现场面试你要是能一边聊家常一边手搓出来,面试官都不忍心卡你。还有一点,帽子最大40,其实就是暗示你“状态压缩”一定要用帽子为外层,不然你用人外层就炸了,因为人数才10以内,但帽子多就不能反过来了。
再补一句哈,这种题你还真别看网上那些暴力回溯的,面试如果写出递归爆搜十有八九要挂,状态DP思路更容易让人信服。
-END-
我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领