[LeetCode 1401]圆和矩形是否有重叠

news2024/12/25 15:27:42

题目描述

给你一个以 (radius, xCenter, yCenter) 表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2) ,其中 (x1, y1) 是矩形左下角的坐标,而 (x2, y2) 是右上角的坐标。

如果圆和矩形有重叠的部分,请你返回 true ,否则返回 false 。

换句话说,请你检测是否 存在 点 (xi, yi) ,它既在圆上也在矩形上(两者都包括点落在边界上的情况)。

示例1

在这里插入图片描述

示例2

输入:radius = 1, xCenter = 1, yCenter = 1, x1 = 1, y1 = -3, x2 = 2, y2 = -1
输出:false

示例3

在这里插入图片描述

提示

1 <= radius <= 2000
− 1 0 4 < = x C e n t e r , y C e n t e r < = 1 0 4 -10^4 <= xCenter, yCenter <= 10^4 104<=xCenter,yCenter<=104
− 1 0 4 < = x 1 < x 2 < = 1 0 4 -10^4 <= x1 < x2 <= 10^4 104<=x1<x2<=104
− 1 0 4 < = y 1 < y 2 < = 1 0 4 -10^4 <= y1 < y2 <= 10^4 104<=y1<y2<=104

思路分析

参考这一篇知乎:怎样判断平面上一个矩形和一个圆形是否有重叠?

这里提到的几点关键点我觉得很巧妙:
1、使用矩形中心作为中心点,而不是圆心作为中心点;如果使用圆心作为中心点,则需要考虑矩形的四个角,情况较为复杂;
2、圆心投射到第一象限具有普适性。
在这里插入图片描述

代码

class Solution {
public:
    //https://www.zhihu.com/question/24251545
    bool checkOverlap(int r, int x, int y, int x1, int y1, int x2, int y2) {
        // xc和yc为矩形的中心点
        double xc = 1.0 * (x1 + x2) / 2;
        double yc = 1.0 * (y1 + y2) / 2;
        //(px, py)作为从矩形中心点指向圆心的向量
        double px = abs(x - xc), py = abs(y - yc);
        //(tx, ty)作为从矩形中心到矩形右上角的向量
        double tx = x2 - xc, ty = y2 - yc;
        //(rx, ry)作为p向量和t向量的减
        double rx = px - tx, ry = py - ty;
        //根据解答描述,如果为负则置0
        if(rx < 0) rx = 0;
        if(ry < 0) ry = 0;
        if(rx * rx + ry * ry <= r * r) 
            return true;
        return false;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音乐格式转换器mp3免费方法?分享四个实用的!

在日常工作和娱乐中&#xff0c;我们经常会遇到并使用MP3这种音频格式。它以小文件尺寸和优秀音质为特点&#xff0c;成为许多音频文件的首选格式。然而&#xff0c;当我们面对其他音频格式时&#xff0c;可能需要进行转换为MP3的操作。因此&#xff0c;接下来我将向您分享4种简…

篇章十一 Vuex

文章目录 一、理解 Vuex1. 是什么2. 什么时候用 二、Vuex 工作原理三、Vuex 环境搭建四、四个 map 方法的使用五、模块化 命名空间 一、理解 Vuex 1. 是什么 Vue 中实现集中式状态&#xff08;数据&#xff09;管理的一个 Vue 插件&#xff0c;对 vue 应用中多个组件的共享状…

蓝牙室内定位|蓝牙信标iBeacon部署原则

室内定位导航给我们的工作生活带来了诸多的便利&#xff0c;越来越多的企业愿意来SKYLAB了解室内定位方案&#xff0c;并根据自己的实际应用需求来选择米级蓝牙室内定位方案和厘米级UWB室内定位方案。今天SKYLAB君就来简单介绍一下蓝牙Beacon室内定位导航方案中Beacon的部署原则…

JAVA基础:线程池的使用

目录 1.概述 2.线程池的优势​​​​​​​ 2.1.线程池为什么使用自定义方式&#xff1f; 2.2.封装的线程池工具类有什么好处&#xff1f; 3.线程池的七大参数 3.线程池的创建 3.1. 固定数量的线程池 3.2. 带缓存的线程池 3.3. 执⾏定时任务 3.4. 定时任务单线程 3.…

掌握唯米系统ChatGPT批量生成文章的操作技巧

以下是重写后的操作步骤&#xff1a; 1. 购买会员并添加个人的ChatGPT密钥&#xff1a; 首先&#xff0c;您需要购买唯米系统的会员&#xff0c;并获得访问ChatGPT的权限。随后&#xff0c;您可以将个人的ChatGPT密钥添加到系统中&#xff0c;以便使用该功能进行自然语言生成和…

Spring Session使用

一.使用场景 前后端不分离的情况下&#xff0c;往登陆页auth.gulimall.com的session中存放一个用户信息&#xff0c;想要在首页gulimall.com中取出该数据并展示出来 GetMapping("/oauth2.0/gitee/success")public String oauth2(RequestParam("code") Str…

组态王与PLC通过RJ45口建立无线以太网通讯

本文以组态王和2台三菱FX5u PLC为例&#xff0c;介绍组态王与多台 PLC的无线以太网通信实现过程。在本方案中采用了三菱PLC无线通讯终端DTD419MB&#xff0c;作为实现无线通讯的硬件设备。 在这一无线以太网通讯系统的搭建中&#xff0c;用户无需更改网络参数和原有程序&#…

Ubuntu的USB相关操作

这里写目录标题 0.信息查看1. 串口设备设置2. 串口调试助手 0.信息查看 指令lsusb输出Bus 004 Device 002: ID 05e3:0620 Genesys Logic, Inc. USB3.2 Hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 006: ID 5986:115f Acer, Inc Integ…

佩戴最舒服的蓝牙耳机推荐,好用、佩戴体验很不错的蓝牙耳机分享

​面对市面上不同场景使用、不同类型的蓝牙耳机&#xff0c;我们选购蓝牙耳机时应该如何选&#xff1f;最怕遇到耳机延迟高、不防水防汗、音质表现差以及佩戴体验差的蓝牙耳机&#xff0c;针对这些经常面临的问题&#xff0c;我这次精选了四款市面上热销质量不错的蓝牙耳机分享…

PMP考试经验分享,准备不要超过三个月‼️

因为各种原因&#xff08;拖延、贪玩、上课 哈哈&#xff09; 我是用一个半月时间准备的PMP考试 3A通过 努力➕幸运的结果 资料准备&#xff1a; PMBOK第六版和第七版&#xff08;PMI官方教材&#xff09; 机构的视频材料&#xff08;巩固基础&#xff09; 模拟题库&#…

计算机原理基础一

内存 计算机数据存储&#xff0c;存储数据的基本单位是字节(Byte),常说的大b,1字节等于8位,8个bit(小b)。每个字节都对应一个内存地址&#xff0c;内存地址是从0开始编写的&#xff0c;然后自增排列&#xff0c;类似数组&#xff0c;C当中空类的大小是1个字节&#xff0c;就是…

JUC并发工具类--AQS

JUC并发工具类--AQS 管程 — Java同步的设计思想MESA模型 AQS&#xff08;AbstractQueuedSynchronizer&#xff1a;抽象队列同步器&#xff09;AQS简介AQS核心结构AQS内部维护属性state。state三种访问方式 两种资源访问方式AQS实现时主要实现的方法isHeldExclusively()tryAcqu…

安全应急产业新标兵, 前沿科技保安全

推广行业前沿技术 服务部队练兵备战 助力应急强国建设 科学应急 一馆一园一平台 安全应急项目推荐 海淀区安全应急产品展示交易中心 同赴时代之约&#xff0c;共创美好未来。 指导单位 2023年4月12日上午&#xff0c; “海淀区安全应急产品展示交易中心“揭牌启动仪式在中…

图像噪声和滤波

图像噪声 在图像采集、处理和传输过程中会受到噪声的影响。常见的图像噪声有椒盐噪声、高斯噪声等。 椒盐噪声 椒盐噪声也叫脉冲噪声&#xff0c;在图像中比较常见&#xff0c;表现为随机出现的噪点&#xff0c;比如在明亮区域中出现的黑色像素。参考下图的例子&#xff1a; 高…

【更改python版本】——日常记录

目录索引 卸载旧版本&#xff1a;提示&#xff1a;python launcher&#xff1a; 下载过程&#xff1a;配置pycharm&#xff1a;提示点&#xff1a;python console打不开的问题&#xff1a; 卸载旧版本&#xff1a; 要卸载 Python 3.7.7 在 Windows 上&#xff0c;请按照以下步骤…

接口测试持续集成

目录 一.在Windows系统上部署Jenkins1.下载Jenkins安装包2.启动Tomcat服务3.通过浏览器访问Jenkins 二.管理Jenkins中的插件1.安装插件2.更新插件3.卸载插件 三.创建项目四.配置项目运行频率 一.在Windows系统上部署Jenkins 1.下载Jenkins安装包 进入Jenkins官网&#xff0c;…

22-作用域链的理解

文章目录 作用域全局作用域函数作用域块级作用域二、词法作用域三、作用域链 作用域 &#x1f37f;&#x1f37f;&#x1f37f;作用域&#xff0c;即变量&#xff08;变量作用域又称上下文&#xff09;和函数生效&#xff08;能被访问&#xff09;的区域或集合 作用域决定了代…

【案例31】数据源密码保存不上

问题现象 客户反馈在启动BIP高级版时&#xff0c;Bip 2207启动异常。在相关的启动日志中排查发现&#xff0c;报数据源连接异常的错误。排查发现BIP高级版的数据源不通。发现密码字段为空导致。 问题分析 添加了正确的密码&#xff0c;测试通过保存。再次重启。发现还是报数据…

如何支持研发对CSDN个性化推荐系统重构

目录 大地图工具构建数据治理保持发布重视测试小结 一个以内容服务为主的软件&#xff0c;它的推荐系统在数据侧对软件产生着举足轻重的作用。数据的三个方面决定了这个内容软件的档次。 数据的质量好坏数据和用户需求的相关性好坏数据的层次体系好坏 通常&#xff0c;我们说…

40 # npm 的使用

npm 3n&#xff1a; nrm&#xff1a;node 中源管理工具nvm&#xff1a;node 中的版本管理工具npm&#xff1a;node 的包管理器&#xff0c;管理的都是 node 的模块 第三方模块 分两种&#xff1a; 全局模块&#xff1a;只能在命令行中使用&#xff0c;任何路径都可以本地模…