今天刷到一个某为员工的吐槽帖,这位某为小哥说,领导找他谈心,希望他支持海外项目,地点是欧洲,待遇直接拉到150W年包!听着是不是心动?可是小哥陷入了纠结:“要不要去?”
他给出的思考点:
现状:在深圳,每年60多,想买房还得五年。
机会:去了欧洲,两年差不多就能攒够首付。
问题:女朋友着急结婚,去两年这个时间线能不能稳住?
困惑:怎么跟领导聊“只去两年”的事?
怎么看这事?
先算算这笔账:
按150W年包,一年实际到手也就百万左右,欧洲消费高(尤其房租和物价),刨去开销,每年剩个60W算是保守估计。两年下来差不多能攒120W,确实比在深圳快。🤑
然后是人情账:
女朋友着急结婚,这得谈清楚。如果你能保证两年后回来,带着首付去结婚,她多半能接受。但要是领导把你安排上了“长期支援”的坑,后面事情就麻烦了。
最后是跟领导聊的艺术:
建议直接开诚布公:
目标明确:你愿意去,但只考虑两年的时间周期。
展示决心:保证这两年全力以赴干活,不辜负团队信任。
留好退路:问清楚“临时派遣”协议细节,比如是否能按期回国,能不能选择地区。
大家怎么看? 如果是你,有机会150W年包去欧洲,会去吗?
算法题:完美矩形
最近刷算法题的时候,遇到了一道名字听起来就有点中二的题:“完美矩形”。
拼出来的区域必须是一个整体,不能有空隙。 不能有多余的重叠部分。 总的面积要等于大矩形的面积。
我的解法逻辑
1. 面积对得上吗?
long areaSum = 0;
for (int[] rect : rectangles) {
areaSum += (long) (rect[2] - rect[0]) * (rect[3] - rect[1]);
}
2. 顶点出现次数
为啥?因为只有偶数次交点才能说明这些小矩形边界刚好贴合。
Set<String>
来记录顶点,遇到一次就加进去,再遇到就删掉,最后这个集合里应该只剩4个顶点。Set<String> points = new HashSet<>();
for (int[] rect : rectangles) {
String[] corners = {
rect[0] + " " + rect[1], // 左下
rect[0] + " " + rect[3], // 左上
rect[2] + " " + rect[1], // 右下
rect[2] + " " + rect[3] // 右上
};
for (String point : corners) {
if (!points.add(point)) {
points.remove(point);
}
}
}
3. 最后的判定
if (points.size() != 4 ||
!points.contains(minX + " " + minY) ||
!points.contains(minX + " " + maxY) ||
!points.contains(maxX + " " + minY) ||
!points.contains(maxX + " " + maxY)) {
return false;
}
return areaSum == (long) (maxX - minX) * (maxY - minY);
-END-
以上,就是今天的分享了,看完文章记得右下角给何老师点赞,也欢迎在评论区写下你的留言。