某大厂员工爆料,试用期被辞退0赔偿,不同意,直接就单方解除,不怕劳动仲裁吗?
刚看到个贴子,说某大厂员工试用期被辞退,0赔偿,人还不同意,结果公司直接单方解除。楼主就问:这不怕劳动仲裁吗?
我觉得这事吧,首先要分清两件事: 公司能不能开人,是一个问题; 能不能“0赔偿、还乱来解除”,又是另一个问题。 试用期并不是“白用不要钱”,只要是无正当理由、程序又乱来,该赔的还是得赔,仲裁不是摆设。
但话说回来,职场是博弈场,不是许愿池。员工一边要体面、一边又啥证据不留,合同也不看,真出了事就很被动;公司一边打着大厂名头,一边踩线用人,迟早也会在口碑和法律上翻车。
面试题:矩形面积
矩形面积这个事儿,其实每天都在你我身边出现,只是你大概率没在意。比如你写个后台管理界面,要算一块卡片区域多大;做游戏的时候,一个角色的碰撞箱是不是跟子弹重叠了;甚至前端排版里,某个 div 占了多少像素面积,背后都是同一套算法思路。
先从最朴素的情况聊起。数学课上说过,矩形面积就是“长 × 宽”,这个不用多解释吧。不过到了代码里,我们至少要把这件事说清楚:什么叫长、什么叫宽,是谁给的。最简单的版本,就是别人已经帮你算好宽度和高度,你只管乘一下就行。在 Python 里,大概就是这样写个小函数:
defrect_area_by_wh(width: float, height: float) -> float:
if width < 0or height < 0:
raise ValueError("矩形的宽和高不能是负数")
return width * height
上面顺手把非法输入也处理了:宽高为负数直接抛异常。实际开发里,这种小检查是非常有用的,不然 bug 会悄悄往后传。
不过很多题目不会直接给你“宽高”,而是给你两个点的坐标,说这俩是对角线上的两个顶点,比如左下角一个点 (x1, y1),右上角一个点 (x2, y2),让你算面积。那思路也很自然:宽度就是 x2 - x1,高度就是 y2 - y1,面积就是两者相乘。唯一要小心的是,题目不一定保证谁是左下谁是右上,所以一般都会取绝对值,写成这样会更稳:
defrect_area_by_points(x1: float, y1: float, x2: float, y2: float) -> float:
width = abs(x2 - x1)
height = abs(y2 - y1)
return width * height
这样一来,就算你传的是左上和右下,甚至右上和左下,都能算对。再往细一点想:如果两点其实是同一个点,那就是一个“退化矩形”,宽高都是 0,面积自然也是 0,这个函数也能自动处理掉,不用额外写分支。
上面都还是一个矩形的面积,难度不大。稍微有点意思的,是两个矩形“交集面积”的算法,这个在面试题和实际业务里都经常会遇到。比如:两个窗口重叠的区域有多大?两个广告位有没有撞在一起?都要先算交集的矩形面积。
我们先约定一个常见表示方法:每个矩形用四个数 (x1, y1, x2, y2) 表示,其中 (x1, y1) 是左下角,(x2, y2) 是右上角,而且要求 x2 > x1、y2 > y1。两个矩形就写成:
矩形 A: (ax1, ay1, ax2, ay2)矩形 B: (bx1, by1, bx2, by2)
交集的“宽度”怎么来?你可以想象在 x 轴上,两段线段 [ax1, ax2] 和 [bx1, bx2] 有多少重合。重合的左边界是两个左端点里更靠右的那个:max(ax1, bx1);右边界是两个右端点里更靠左的那个:min(ax2, bx2)。如果右边界比左边界还小,说明根本没重合,宽度就是 0。高度在 y 轴上的逻辑一模一样。最后交集面积就是“交集宽 × 交集高”。
翻成 Python,大概长这个样子:
defintersect_area(
ax1: float, ay1: float, ax2: float, ay2: float,
bx1: float, by1: float, bx2: float, by2: float
) -> float:
# 交集的左右边界
inter_left = max(ax1, bx1)
inter_right = min(ax2, bx2)
# 交集的上下边界
inter_bottom = max(ay1, by1)
inter_top = min(ay2, by2)
inter_width = inter_right - inter_left
inter_height = inter_top - inter_bottom
if inter_width <= 0or inter_height <= 0:
return0.0
return inter_width * inter_height
这里故意没有用绝对值,而是直接判断小于等于 0 当作没有重叠,这样可以避免一些奇怪的情况。比如两个矩形刚好边贴边,但没有面积交集,这种在几何上交集面积是 0,我们就让它返回 0。
最后,矩形面积这个题看起来特别基础,但你一旦习惯从“坐标 → 宽高 → 面积”这条链路去拆,就会发现很多二维几何题其实都是换皮版本:矩形碰撞检测、遮挡比例、截图区域、热区点击统计……背后的核心就在这几行代码里。等哪天你写业务写腻了,回头再翻翻这些小函数,可能会突然意识到,刷题和工作,其实没你想的那么割裂。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB