首页 > 其他分享 >LeetCode 836[矩形重叠]

LeetCode 836[矩形重叠]

时间:2024-11-12 17:31:24浏览次数:1  
标签:矩形 836 重叠 int y1 x2 y2 LeetCode

题目

链接

LeetCode 836[矩形重叠]

详情

实例

提示

题解

思路

无重叠的四种情况:

  1. 第二个矩形的右边边如果在第一个矩形的左边边的左边或重叠
  2. 第二个矩形的左边边如果在第一个矩形的右边边的右边或重叠
  3. 第二个矩形的上边边如果在第一个矩形的下边边的下边或重叠
  4. 第二个矩形的下边边如果在第一个矩形的上边边的上边或重叠

 

第一个矩形:取x1,y1为左下角坐标,x2,y2为右上角坐标,分别对应vector容器rec1的第0,1,2,3个元素

第二个矩形:取x1_,y1_为左下角坐标,x2_,y2_为右上角坐标,分别对应vector容器rec2的第0,1,2,3个元素

当 x2_ <= x1 时,即第二个矩形的右边边在第一个矩形的左边边的左边或重叠

当 x1_ >= x2 时,即第二个矩形的左边边在第一个矩形的右边边的右边或重叠

当 y2_ <= y1 时,即第二个矩形的上边边在第一个矩形的下边边的下边或重叠

当 y1_ >= y2 时,即第二个矩形的下边边在第一个矩形的上边边的上边或重叠

以上返回 false

否则返回 true

代码

class Solution {
public:
    bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
        int x1 = rec1.at(0);
        int y1 = rec1.at(1);
        int x2 = rec1.at(2);
        int y2 = rec1.at(3);

        int x1_ = rec2.at(0);
        int y1_ = rec2.at(1);
        int x2_ = rec2.at(2);
        int y2_ = rec2.at(3);

        if (x2_ <= x1)
            return false;
        
        if (y2_ <= y1)
            return false;
        
        if (x1_ >= x2)
            return false;
        
        if (y1_ >= y2)
            return false;

        return true;
    }
};

标签:矩形,836,重叠,int,y1,x2,y2,LeetCode
From: https://www.cnblogs.com/EricsT/p/18541726

相关文章

  • leetcode 29. 两数相除
    29.两数相除一、使用long类型classSolution{public:longdivide2(longdividend,longdivisor){if(dividend<0&&divisor<0)returndivide2(-dividend,-divisor);elseif(dividend<0&&divisor>0)return-div......
  • leetcode 4. 寻找两个正序数组的中位数 困难 未完全解决
    leetcode4.寻找两个正序数组的中位数一、使用额外空间,类似归并排序的做法classSolution{public:doublefindMedianSortedArrays(vector<int>&nums1,vector<int>&nums2){intm=nums1.size();intn=nums2.size();inttemp[(m+n)/2+1];//......
  • 代码随想录算法训练营第十一天|LeetCode150.逆波兰表达式求值、239.滑动窗口最大值、3
    前言打卡代码随想录算法训练营第49期第十一天 φ(゜▽゜*)♪首先十分推荐学算法的同学可以先了解一下代码随想录,可以在B站卡哥B站账号、代码随想录官方网站代码随想录了解,卡哥清晰易懂的算法教学让我直接果断关注,也十分有缘和第49期的训练营大家庭一起进步。今日题目在学......
  • 代码随想录算法训练营第三天(LeetCode203.移除链表元素;LeetCode707.设计链表;LeetCode20
    LeetCode203.移除链表元素题目链接:LeetCode203.移除链表元素题目链接思路这道题目主要考察的是移除一个链表当中的元素,我们可以先在给定的链表前面加一个虚拟头结点,这样我们对给定链表头结点的操作和给定链表其余结点的操作就会变得相同。代码classSolution{p......
  • 代码随想录算法训练营第四天(LeetCode24.两两交换链表中的节点;LeetCode10.删除链表的倒
    LeetCode24.两两交换链表中的节点题目链接:两两交换链表中的节点题目链接思路这道题其实就是一个模拟题,要求每次交换链表中两个相邻的节点(1、2节点互换;3、4节点互换;2、3节点不互换,意思就是交换过的节点不参与后续的交换了),同时只能进行节点交换,不能进行值交换。主要考......
  • LeetCode【0011】盛最多水的容器
    本文目录1中文题目2求解思路2.1基础解法:暴力算法2.2优化解法:分治法2.3最优解法:双指针法3题目总结1中文题目给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的......
  • LeetCode【0010】正则表达式匹配
    本文目录1中文题目2求解思路2.1基础解法:递归法2.2优化解法:动态规划和递归结合2.3最优解法:NFA(非确定性有限自动机)3题目总结1中文题目给一个字符串s和一个字符规律p,实现一个支持‘.’和‘*’的正则表达式匹配。‘.’匹配任意单个字符‘*’匹配零个或......
  • leetcode算法题-有效的括号(简单)
    有效的括号(简单)leetcode:https://leetcode.cn/problems/valid-parentheses/description/前言防止脑袋生锈,做一下leetcode的简单算法题,难得也做不来哈哈。大佬绕道,小白可看。题目描述给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:......
  • leetcode刷题笔记--最大滑动窗口
    classSolution{publicintlongestOnes(int[]nums,intk){intl=0,r=0;while(r<nums.length){if(nums[r++]==0){k--;}if(k<0&&nums[l++]==0){......
  • 代码随想录算法训练营第二十二天| leetcode77. 组合、leetcode216.组合总和III、leetc
    1leetcode77.组合题目链接:77.组合-力扣(LeetCode)文章链接:代码随想录视频链接:带你学透回溯算法-组合问题(对应力扣题目:77.组合)|回溯法精讲!_哔哩哔哩_bilibili思路:开始想循环,感觉行不通,然后看了视频,就嗯理解了一些感觉跟递归的思路确实差不多1.1回溯三部曲回溯的方法首......