836. Rectangle Overlap矩形相交

梦里梦外; 2023-03-03 15:25 103阅读 0赞

题目:矩形以list表示[x1, y1, x2, y2],其中 (x1, y1) 分别是其左下角的坐标和其右上角(x2, y2) 的坐标。

如果两个矩形的相交区域为正,则它们重叠。为了清楚起见,两个仅在角或边缘接触的矩形不重叠。

给定两个(与轴对齐的)矩形,返回它们是否重叠。

这题关键在于给了的是一个左下角的点和右上角的点!
思路:
所以我们用排除法,将不可能相交的排除,剩余的就是可能的了。
如果他们有相交的,那么一定会出现一个x/y在别人里面。所以通过确定上下边界来排除相交的方法。因为左下点的x就是左边界,y就是下边界。右上点的x就是右边界,y就是上边界。

  1. //因为这题的关键就在于给了左下角的点和右上角的点够成的矩形
  2. class Solution {
  3. public:
  4. bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
  5. if(rec1[2]<=rec2[0]|| //第一个的右边界在第二个的左边界左边
  6. rec1[0]>=rec2[2] || //1的左边界 在2 的右边界右边
  7. rec1[3]<=rec2[1]|| //1的上边界 在2的下边界下面
  8. rec1[1]>rec2[3] //1的下边界 在2的上边界上面
  9. )
  10. return false;
  11. return true;
  12. }
  13. };

发表评论

表情:
评论列表 (有 0 条评论,103人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Almost Rectangle输出矩形*

    OHgg 获得了一个大小等于n \times nn×n的正方形方阵,方针内有两个单元格被画上了星星,也就是被标记了. 这两个单元格可以在相同的位置(即同行同列).他需要再...