zoukankan      html  css  js  c++  java
  • leetcode836

    //分类讨论 思路有点麻烦 该题目也给出了如果对于无序点解体的思路 即按照左下到右上的思路处理
    //1.首先确定一个矩形
    //2.然后根据第二个矩形的左下角的横坐标移动 来分成三类 : i. 区间右侧 ii.区间中间 iii.区间左侧
    //3.针对i 容易看到可以直接返回
    //4.针对ii 讨论不重叠时纵坐标的取值 其余均重叠
    //5.针对iii情况相对复杂 这里两种情况与ii相同,还有一种情况是第二个矩形的max_x小于第一个矩形的min_x
    class Solution {
    public:
        bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
            
            int cnt = 0;
            int x1 = rec1[0];
            int x2 = rec1[2];
            
            int y1 = rec1[1];
            int y2 = rec1[3];
            
            if(rec2[0] >= x2) 
                 return false;
            else if(rec2[0] < x1){
                 if(rec2[2] > x1 ){
                      if(rec2[3] <= y1)      return false;
                      else if(rec2[1] >= y2) return false;
                      else                   return true;
                 }
                 else                        return false;
            }
            
            else{
                if(rec2[3] <= y1)           return false;
                else if(rec2[1] >= y2)      return false;
                else                        return true;
            }
                
                
        }
    };
  • 相关阅读:
    [iOS基础控件
    [iOS基础控件
    [iOS基础控件
    [iOS基础控件
    [iOS基础控件
    [iOS基础控件
    [iOS基础控件
    白话之jsonp跨域原理分析
    crontab定时任务
    python模块之uuid
  • 原文地址:https://www.cnblogs.com/rhythmic/p/11567658.html
Copyright © 2011-2022 走看看