精华内容
下载资源
问答
  • leetcode矩形重叠

    2020-03-11 16:49:37
    矩形1不和矩形2重叠只有四种情况,矩形1在矩形2的上方,下方,左方、右方 除此之外的情况,都是重叠。 代码如下: class Solution { public: bool isRectangleOverlap(vector<int>& rec1, vector<...

     

    1.位置法

    矩形1不和矩形2重叠只有四种情况,矩形1在矩形2的上方,下方,左方、右方

    除此之外的情况,都是重叠。

    代码如下:

    class Solution {
    public:
        bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
            return !(rec1[2] <= rec2[0] ||   // left
                     rec1[3] <= rec2[1] ||   // bottom
                     rec1[0] >= rec2[2] ||   // right
                     rec1[1] >= rec2[3]);    // top
        }
    };

    2.区域法

    设重叠部分的矩形区域长度和宽度分别是width,height,只有两个都是正数才重叠

    则当min(rec1[2],rec2[2])>max(rec1[0],rec2[0]),width>0

    当min(rec1[3],rec2[3])>max(rec1[1],rec2[1]),height>0

    代码如下:

    class Solution {
    public:
        bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
            return (min(rec1[2], rec2[2]) > max(rec1[0], rec2[0]) && // width > 0
                    min(rec1[3], rec2[3]) > max(rec1[1], rec2[1]));  // height > 0
        }
    };

     

    展开全文
  • LeetCode 矩形重叠

    2019-05-27 20:17:45
    矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。 给出两个矩形,...

    矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。

    如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。

    给出两个矩形,判断它们是否重叠并返回结果。

    示例 1:

    输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]
    输出:true
    

    示例 2:

    输入:rec1 = [0,0,1,1], rec2 = [1,0,2,1]
    输出:false
    

    说明:

    两个矩形 rec1 和 rec2 都以含有四个整数的列表的形式给出。
    矩形中的所有坐标都处于 -10^9 和 10^9 之间。
    

    \color{blue}思路分析:这道题我们正面考虑可能情况比较多,可以逆向思维,只要找到他们两不相交的条件即可。

    class Solution {
    public:
        bool isRectangleOverlap(vector<int>& rec1, vector<int>& rec2) {
            //rec2[0] >= rec1[2]代表的是rec1在rec2的左方(相邻)
            //rec1[0] >= rec2[2]代表的是rec1在rec2的右方(相邻)
            //rec2[1] >= rec1[3]代表的是rec1在rec2的下方(相邻)
            //rec1[1] >= rec2[3]代表的是rec1在rec2的上方(相邻)
            if (rec2[0] >= rec1[2] || rec1[0] >= rec2[2] || rec2[1] >= rec1[3] || rec1[1] >= rec2[3]){
                return false; 
            }
            return true;
        }
    };
    

    在这里插入图片描述

    展开全文
  • Leetcode 矩形重叠

    2019-05-28 08:06:51
    矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。 给出两个矩形,...

    矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。

    如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。

    给出两个矩形,判断它们是否重叠并返回结果。

    示例 1:

    输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]
    输出:true
    

    示例 2:

    输入:rec1 = [0,0,1,1], rec2 = [1,0,2,1]
    输出:false
    

    说明:

    1. 两个矩形 rec1rec2 都以含有四个整数的列表的形式给出。
    2. 矩形中的所有坐标都处于 -10^910^9 之间。

     

    思路:判断边

    bool isRectangleOverlap(int* rec1, int rec1Size, int* rec2, int rec2Size){
        
        if(rec1[0] >= rec2[2])
            return false;
        
        if(rec1[2] <= rec2[0])
            return false;
        
        if(rec1[1] >= rec2[3])
            return false; 
        
        if(rec1[3] <= rec2[1])
            return false;
        
        return true;
    }

     

     

    展开全文
  • LeetCode 矩形面积

    2019-03-02 15:46:43
    在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。 每个矩形由其左下顶点和右上顶点坐标表示,如图所示。 示例: 输入: -3, 0, 3, 4, 0, -1, 9, 2 输出: 45 说明: 假设矩形面积不会超出 int 的范围。 ...

    在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。

    每个矩形由其左下顶点和右上顶点坐标表示,如图所示。
    在这里插入图片描述
    示例:

    输入: -3, 0, 3, 4, 0, -1, 9, 2
    输出: 45
    

    说明: 假设矩形面积不会超出 int 的范围。

    class Solution {
    public:
        int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
            int areaOne = (C - A) * (D - B);
            int areaTwo = (G - E) * (H - F);
            int width, length;//重叠部分的宽、长
            //C <= E ABCD在EFGH的左边,不重叠
            //G <= A ABCD在EFGH的右边,不重叠
            //H <= B ABCD在EFGH的上边,不重叠
            //D <= F ABCD在EFGH的下边,不重叠
            if (C <= E || G <= A || H <= B || D <= F){
                return areaOne + areaTwo;
            }
            int wid1 = min(C-E,G-A);
            int wid2 = min(C-A,G-E);//这里用于处理当一个的宽处于另一个的里面
            width = min(wid1,wid2);
    	    int hei1 = min(D-F,H-B);
            int hei2 = min(D-B,H-F);//这里用于处理当一个的长处于另一个的里面
            length = min(hei1,hei2);
            return areaOne - (width * length) + areaTwo;
        }
    };
    

    在这里插入图片描述

    展开全文
  • leetcode 原题链接:矩形重叠 描述 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两...
  • 我们给出了一个(轴对齐的)矩形列表 rectangles 。 对于 rectangle[i] = [x1, y1, x2, y2],其中(x1,y1)是矩形 i 左下角的坐标,(x2,y2)是该矩形右上角的坐标。 找出平面中所有矩形叠加覆盖后的总面积。 由于...
  • Leetcode 最大矩形

    2021-02-21 19:17:50
    最大矩形 题目描述: 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 提示:    rows == matrix.length    cols == ...
  • LeetCode223矩形面积

    2020-10-13 17:38:22
    LeetCode223矩形面积 解题思路 首先,我们调整两个矩形,让第一个矩形是靠最左边的; 其次,先考虑没有重叠的情况,有三种情况,如图所示: rectangle1 的下边都大于(等于)rectangle2 的上边,即 B >= H ...
  • Leetcode 构造矩形

    2019-05-03 07:13:10
    现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求: 1. 你设计的矩形页面必须等于给定的目标面积。 2. 宽度 W 不应大于长度 L,换言之,要求 L >= W ...
  • LeetCode 构造矩形

    2019-04-05 10:07:47
    现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求: 1. 你设计的矩形页面必须等于给定的目标面积。 2. 宽度 W 不应大于长度 L,换言之,要求 L >= W 。 ...
  • LeetCode 完美矩形

    2019-03-16 19:50:11
    我们有 N 个与坐标轴对齐的矩形, 其中 N &gt; 0, 判断它们是否能精确地覆盖一个矩形区域。 每个矩形用左下角的点和右上角的点的坐标来表示。例如, 一个单位正方形可以表示为 [1,1,2,2]。 ( 左下角的点的坐标为 ...
  • LeetCode 最大矩形

    千次阅读 2019-02-16 18:25:22
    给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [ ["1","0","1","0","0"], ["1","0",&...
  • Leetcode836 矩形重叠

    2019-04-26 19:28:43
    矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。 给出两个矩形,...
  • leetcode最大矩形84

    2019-02-16 15:30:45
    求在该柱状图中,能够勾勒出来的矩形的最大面积。   以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。   图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。 ...
  • LeetCode矩形覆盖

    2020-06-10 21:37:20
    题目描述: 我们可以用2x1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2x1的小矩形无重叠地覆盖一个2xn的大矩形,总共有多少种方法? 思路: 由题目看出,f(n) = f(n - 1) + f(n - 2). 参考代码: 递归法: ...
  • Java实现 LeetCode 223 矩形面积

    万次阅读 多人点赞 2020-02-28 21:26:48
    223. 矩形面积 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。 每个矩形由其左下顶点和右上顶点坐标表示,如图所示。 Rectangle Area 示例: 输入: -3, 0, 3, 4, 0, -1, 9, 2 输出: 45 说明: 假设矩形...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,720
精华内容 1,088
关键字:

leetcode矩形