码迷,mamicode.com
首页 > 其他好文 > 详细

836. Rectangle Overlap ——weekly contest 85

时间:2018-05-21 00:04:17      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:code   time   rect   amp   begin   its   put   sort   back   

Rectangle Overlap

A rectangle is represented as a list [x1, y1, x2, y2], where (x1, y1) are the coordinates of its bottom-left corner, and (x2, y2) are the coordinates of its top-right corner.

Two rectangles overlap if the area of their intersection is positive.  To be clear, two rectangles that only touch at the corner or edges do not overlap.

Given two rectangles, return whether they overlap.

Example 1:

Input: rec1 = [0,0,2,2], rec2 = [1,1,3,3]
Output: true

Example 2:

Input: rec1 = [0,0,1,1], rec2 = [1,0,2,1]
Output: false

Notes:

  1. Both rectangles rec1 and rec2 are lists of 4 integers.

  2. All coordinates in rectangles will be between -10^9 and 10^9.
 1 class Solution {
 2 public:
 3     bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
 4         vector<int> xx,yy;
 5         xx.push_back(rec1[0]);
 6         xx.push_back(rec1[2]);
 7         xx.push_back(rec2[0]);
 8         xx.push_back(rec2[2]);
 9         yy.push_back(rec1[1]);
10         yy.push_back(rec1[3]);
11         yy.push_back(rec2[1]);
12         yy.push_back(rec2[3]);
13         std::sort(xx.begin(),xx.end());
14         std::sort(yy.begin(),yy.end());
15         for(int x = 0; x < 4;x++){
16             for(int y = 0;y < 4;y++){
17                 if(2*xx[x]+1 < 2*rec2[2]&&2*xx[x]+1 > 2*rec2[0]&&2*yy[y]+1 > 2*rec2[1]&&2*yy[y]+1 < 2*rec2[3]){
18                     if(2*xx[x]+1 < 2*rec1[2]&&2*xx[x]+1 > 2*rec1[0]&&2*yy[y]+1 > 2*rec1[1]&&2*yy[y]+1 < 2*rec1[3]){
19                         return true;
20                     }
21                  }
22             }
23         }
24         return false;
25     }
26 };

A easier solution:

1 bool isRectangleOverlap(vector<int>& a, vector<int>& b) {
2     return !(a[2] <= b[0] || b[2] <= a[0] || a[3] <= b[1] || b[3] <= a[1]);
3 }

 

836. Rectangle Overlap ——weekly contest 85

标签:code   time   rect   amp   begin   its   put   sort   back   

原文地址:https://www.cnblogs.com/jinjin-2018/p/9065112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!