zoukankan      html  css  js  c++  java
  • 836. Rectangle Overlap ——weekly contest 85

    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 }
  • 相关阅读:
    nginx文件类型错误解析漏洞
    js 获取URL中的参数并转换为对象
    postman
    php curl参数详解
    php 两变量值互换 方法
    PHP 命名空间与spl_autoload_register() 自动加载机制
    php命名大小问题
    PHP实现冒泡排序
    使用 PHPStorm + Xdebug 实现断点调试(二)
    TSPL学习笔记(2):过程和变量绑定
  • 原文地址:https://www.cnblogs.com/jinjin-2018/p/9065112.html
Copyright © 2011-2022 走看看