长大后想做什么?做回小孩!

0%

[LeetCode]——矩形重叠

NO.863 矩形重叠 简单

8wpQxg.png

思路一:投影区间 在二维坐标系中将rec1和rec2的坐标分别投影到x轴和y轴上,在x、y轴上分别形成各自的投影区间。

8wiYXF.png

然后判断区间是否重叠,当且仅当x、y轴区间同时发生重叠,rec1和rec2才发生重叠。

我们只判断区间不重叠的情况即可,不重叠的非就是重叠。

1
2
3
4
5
6
7
public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
//x、y轴投影区间不重叠两种情况,非运算就是重叠
boolean xIsOverlap=!(rec1[2]<=rec2[0]||rec2[2]<=rec1[0]);
boolean yIsOverlap=!(rec1[3]<=rec2[1]||rec2[3]<=rec1[1]);
//当且仅当x、y轴区间都重叠,矩形才重叠
return xIsOverlap&&yIsOverlap;
}

时间复杂度:O(1)


本人菜鸟,有错误请告知,感激不尽!

更多题解和源码:github