leetcode数论(836. 矩形重叠)

前言

经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。

数论包含最大公约数(>=2个数)、最大公约数性质、最小公倍数、区间范围质因素计数(最下间隔)、质因素分解、判断质数、平方根、立方根、互质、同余等等。

描述

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

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

给出两个矩形 rec1rec2 。如果它们重叠,返回 true;否则,返回 false

示例 1:

复制代码
输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]
输出:true

示例 2:

复制代码
输入:rec1 = [0,0,1,1], rec2 = [1,0,2,1]
输出:false

示例 3:

复制代码
输入:rec1 = [0,0,1,1], rec2 = [2,2,3,3]
输出:false

提示:

  • rect1.length == 4
  • rect2.length == 4
  • -109 <= rec1[i], rec2[i] <= 109
  • rec1rec2 表示一个面积不为零的有效矩形

实现原理与步骤

1.找矩形的左下角的最大值和矩形的右上角的最小值。

2.如果最大值和最小值有相交则表示有重叠。

实现代码(按模分组)

java 复制代码
class Solution {
    public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
        int x_left_down=Math.max(rec1[0],rec2[0]);
        int y_left_down=Math.max(rec1[1],rec2[1]);
        int x_right_up=Math.min(rec1[2],rec2[2]);
        int y_right_up=Math.min(rec1[3],rec2[3]);

        if(x_left_down<x_right_up&&y_left_down<y_right_up){
            return true;
        }
        return false;
    }
}

1.QA:

相关推荐
侯小啾26 分钟前
【03】C语言 强制类型转换 与 进制转换
c语言·数据结构·算法
Xの哲學1 小时前
Linux NAPI 架构详解
linux·网络·算法·架构·边缘计算
京东零售技术4 小时前
扛起技术大梁的零售校招生们 | 1024技术人特别篇
算法
爱coding的橙子5 小时前
每日算法刷题Day78:10.23:leetcode 一般树7道题,用时1h30min
算法·leetcode·深度优先
Swift社区5 小时前
LeetCode 403 - 青蛙过河
算法·leetcode·职场和发展
地平线开发者5 小时前
三种 Badcase 精度验证方案详解与 hbm_infer 部署实录
算法·自动驾驶
papership5 小时前
【入门级-算法-5、数值处理算法:高精度的减法】
算法·1024程序员节
lingran__5 小时前
算法沉淀第十天(牛客2025秋季算法编程训练联赛2-基础组 和 奇怪的电梯)
c++·算法
DuHz5 小时前
基于MIMO FMCW雷达的二维角度分析多径抑制技术——论文阅读
论文阅读·物联网·算法·信息与通信·毫米波雷达
一二学长6 小时前
快速排序(JAVA详细讲解快速排序的四种方式)
数据结构