男朋友和领导大吵了一架,被裁员了,离职前月薪8000,不到一周找了个18000,就在准备收拾去下家上班时,结果HR说不用去了
刚看到个贴子,说有网友吐槽她男朋友跟领导吵架被裁员,前脚刚找到个18000的新工作,后脚HR又发消息说不用来了。唉,这剧情比电视剧还刺激。
我觉得这事吧,职场里情绪化真的太要命。吵架那一瞬间爽是爽了,可后果往往比想象大得多。尤其现在市场竞争这么激烈,信息传播又快,一个情绪爆发,可能就让自己在行业里被打上“难相处”的标签。
网友们有人骂HR不厚道,也有人夸男生有骨气,但我觉得关键不是谁对谁错,而是你能不能稳住心态。职场从来不是比谁硬气,而是比谁能熬得住气。能忍的时候忍一忍,才能留住机会。
总的来说,发脾气一时爽,后果真是火葬场。情绪管好了,才是真本事。【备注:文末可领最新资料】
面试题:翻转对
我记得有次在公司写这题的时候,已经晚上十一点了,电脑旁边的咖啡都凉透了。题目看起来挺朴素的:
给你一个数组
nums,如果满足i < j且nums[i] > 2 * nums[j],那(i, j)就是一个“翻转对”。
你得数出一共有多少这样的对。
听起来像那种“遍历两遍数组就完事”的题对吧?结果我天真地写了个双循环,直接超时。数组长度一大,上千个元素跑起来,时间复杂度 O(n²),妥妥地炸。
暴力写法:先理解再优化
先看最直接的思路(暴力写法),代码是这样的:
defreversePairs(nums):
count = 0
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
if nums[i] > 2 * nums[j]:
count += 1
return count
这个版本完全能过小样例,比如 [1,3,2,3,1] 输出 2。但一旦数组长点,比如上万级,就完蛋。两层循环跑不动。
所以关键问题是:怎么减少无意义的比较?
思路转弯:归并排序的神操作
后来想起了归并排序。归并的过程里,本身就是把两个有序的数组合并在一起,而翻转对也正好跟顺序有关。
我们要找的是 nums[i] > 2 * nums[j] 且 i < j,这在归并时就能顺带统计。
比如分成两半 [left] 和 [right],它们都排好序时:
左半部分的每个数对应右半部分的若干个数。 因为两边都是有序的,可以用双指针快速数有多少满足条件的对。
那时候我记得看懂这个逻辑的时候,脑子“啪”地一下就亮了。
代码实现(Python版)
defreversePairs(nums):
defmerge_sort(arr):
if len(arr) <= 1:
return arr, 0
mid = len(arr) // 2
left, left_count = merge_sort(arr[:mid])
right, right_count = merge_sort(arr[mid:])
count = left_count + right_count
j = 0
# 统计翻转对
for i in range(len(left)):
while j < len(right) and left[i] > 2 * right[j]:
j += 1
count += j
# 合并两个有序数组
merged = []
i = j = 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
merged.append(left[i])
i += 1
else:
merged.append(right[j])
j += 1
merged.extend(left[i:])
merged.extend(right[j:])
return merged, count
_, total = merge_sort(nums)
return total
这个算法的时间复杂度是 O(n log n),空间复杂度 O(n),性能直接起飞。
举个例子
拿 [2,4,3,5,1] 举例。 一开始分成 [2,4,3] 和 [5,1],递归下去直到最小单位 [2], [4], [3], [5], [1]。 当归并 [2,4,3] 时,发现 4 > 2*1 这样的组合符合条件,往上归并统计更多。 最后算出来答案是 3。
这题其实考的不是“条件判断”,而是对排序算法的理解和灵活运用。 很多人第一次遇到这种题都卡在“怎么统计 i<j 这类关系”上。 如果你发现题目里出现“有序”“前后关系”“成对统计”这类关键词,脑子里该闪烁一下:是不是能用 归并排序或二叉搜索树 优化?
我当时写完这题去热了杯咖啡,看着那句“Accepted”,有点感慨。算法真不是死记硬背,是那种越想越通的逻辑美感。 就像生活里有时候你得后退一步,整个局面反而清晰了。
要是你现在刚好在刷 LeetCode 493,别灰心,这题就是那种一开始看不懂、但理解了就一通百通的经典题。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领