牛逼,好久没遇见这么爽快的hr了。我问有没有底薪,hr直接说没底薪违法。。
这贴我看到的时候第一反应是:这年头问“有没有底薪”都能聊出火药味,职场沟通属实越来越玄学了。
从贴主说的来看,他可能是想确认一下工资结构,结果HR直接甩了句“没底薪违法”,还顺嘴来一句“你可以去举报”。乍一听确实挺冲的,换谁都可能会觉得被怼了。
但仔细想想,网友说得也不是没道理,这HR说话虽然不够温柔,但逻辑上也没啥问题:按规定确实得有底薪,遇到不合规的,你举报也是合理渠道,只是这话一出口太直接,容易让人觉得是在激将法。
作为搞Python的,平时跟HR打交道也不少,特别是谈offer的时候,“底薪+绩效+提成”这些说法简直千变万化。有的公司会把薪资拆得花里胡哨,说是月薪2万,结果底薪才六七千,其余都是“浮动”,一不小心就踩坑。所以问底薪不是矫情,是防身。
只是这事也提醒大家,沟通的时候真的不能只看语气,要看语义。不然对方没想表达的意思,你自己脑补出来,还气半天,那就太亏了。总之,不卑不亢,该问就问,不清楚就继续追问细节,别被几句话吓退了。毕竟,咱是来找工作的,不是来解读哲学语录的。
面试题:多数元素
多数元素(Majority Element)这个题目其实很常见,意思是:给定一个大小为 n 的数组,找出其中出现次数大于 ⌊n/2⌋ 的元素。题目保证一定存在这样的元素。
我们先看最推荐的一种解法:Boyer-Moore 投票算法,时间复杂度 O(n),空间复杂度 O(1),是很多大厂面试的标答。
Python 实现:
defmajority_element(nums):
candidate = None
count = 0
for num in nums:
if count == 0:
candidate = num
count += 1if num == candidate else-1
return candidate
比如 nums = [3,3,4,2,3,3,5],最终输出就是 3,因为它出现了最多次,超过一半。
这个算法的核心思想是“抵消”机制,两个不同的元素互相抵消,最后剩下的一定是最多的那个。注意:前提是题目保证多数元素一定存在,否则这个算法不能直接用。
面试最优回答建议:
找多数元素如果考虑时间和空间最优,那最经典的就是 Boyer-Moore 投票算法。它用一个计数器维护当前候选元素和“支持率”,每次遇到一样的就+1,不一样就-1,归零就换人。最后留下的一定是超过一半的那个。时间复杂度 O(n),空间 O(1),没有排序、没有哈希,非常适合面试场景,思路也体现了算法思想的“以多胜少”。
你答到这个算法,多半会被追问它的前提限制,记得强调“前提是保证多数元素一定存在”,这样面试官会觉得你答得不仅对,而且稳。
最后,我为大家打造了一份deepseek的入门到精通教程,完全免费:https://www.songshuhezi.com/deepseek
也可以看我写的这篇文章《DeepSeek满血复活,直接起飞!》来进行本地搭建。
对编程、职场感兴趣的同学,大家可以联系我微信:golang404,拉你进入“程序员交流群”。
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》。