2023-06-25 LeetCode每日一题(圆和矩形是否有重叠)

news/2024/11/24 14:10:35/

2023-06-25每日一题

一、题目编号

1401. 圆和矩形是否有重叠

二、题目链接

点击跳转到题目位置

三、题目描述

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

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

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

提示:

  • 1 <= radius <= 2000
  • -104 <= xCenter, yCenter <= 104
  • -104 <= x1 < x2 <= 104
  • -104 <= y1 < y2 <= 104

四、解题代码

class Solution {long long distance(int xCenter, int yCenter, int x0, int y0){return (long long) pow(xCenter - x0, 2) + (long long) pow(yCenter - y0, 2);}public:bool checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {if (x1 <= xCenter && xCenter <= x2 && y1 <= yCenter && yCenter <= y2) {return true;}if (x1 <= xCenter && xCenter <= x2 && y2 <= yCenter && yCenter <= y2 + radius) {return true;}if (x1 <= xCenter && xCenter <= x2 && y1 - radius <= yCenter && yCenter <= y1) {return true;}if (x1 - radius <= xCenter && xCenter <= x1 && y1 <= yCenter && yCenter <= y2) {return true;}if (x2 <= xCenter && xCenter <= x2 + radius && y1 <= yCenter && yCenter <= y2) {return true;}if(distance(xCenter, yCenter, x1, y2) <= radius * radius){//左上角return true;}if(distance(xCenter, yCenter, x2, y2) <= radius * radius){//右上角return true;}if(distance(xCenter, yCenter, x2, y1) <= radius * radius){//右下角return true;}if(distance(xCenter, yCenter, x1, y1) <= radius * radius){//左下角return true;}return false;}
};

五、解题思路

(1) 总共需要讨论九种不同的情况。(将正方形的点与四个对角线点最近的时候的4种情况汇总来说明)

  1. 圆心在正方形内,满足条件
  2. 圆心在正方形上方,则圆下方边界要不高于正方形上边界
  3. 圆心在正方形下方,则圆上方边界要不低于正方形下边界
  4. 圆心在正方形左方,则圆右方边界要至少等于或超过正方形左边界
  5. 圆心在正方形右方,则圆左方边界要至少等于或超过正方形有边界
  6. 圆心距离正方形四个顶点很近,那么圆心到顶点的距离应该小于等于半径。

(2) 最后上述条件均不满足,返回false即可。


http://www.ppmy.cn/news/562614.html

相关文章

【PCB专题】Allegro中设置泪滴

PCB绘制完成后有时按需要对PCB进行添加泪滴的操作是非常必要的。 添加泪滴的作用主要是: 信号传输时平滑阻抗,减少阻抗的急剧跳变,避免高频信号传输时由于线宽突然变小而造成反射。 焊接时可以保护焊盘,避免多次焊接时焊盘的脱落,生产时可以避免蚀刻不均,以及过孔偏位出…

ViewModel进阶 | 使用SavedState实现数据复用的另一种方式

前言&#xff1a;金风玉露一相逢&#xff0c;便胜人间无数。 前言 本文需要有上一篇文章基础&#xff0c;如果不了解的可以先看看《由浅入深&#xff0c;ViewModel配置变更的复用详解》 前面我们了解到&#xff0c;ViewModel 它只能做到因为配置变更页面被销毁而导致重建数据…

人工智能技术与GIS结合的发展

个人本是GIS专业出身&#xff0c;不知名985高校本硕。工作几年后先后积累了国土空间规划、cesium开发、地理信息数据采集、地理大数据处理&#xff0c;遥感影像处理、人工智能识别&#xff0c;做过十多个500万以上的相关项目&#xff0c;有一些浅薄的经验&#xff0c;想和大家分…

伪娘之男扮女装

>>伪娘 伪娘&#xff0c;是一个ACG界名词(动画、漫画、游戏)&#xff0c;通常指的是男扮女装且有女性美貌的男性角色&#xff0c;变装后常常带有很强的萌属性&#xff0c;有的可能更胜过一般女性角色&#xff0c;在日本年轻男性中正在兴起一种女装男子的“伪娘”热。聘用…

女装搭配的方法,搭配需要注意的地方

女装搭配的方法&#xff0c;搭配需要注意的地方 一、上下装的搭配 一般上浅下深的色彩搭配方式会在视觉上产生稳定与稳重的感觉服装搭配技巧&#xff0c;而上深下浅的色彩搭配方式会相对给人以活跃于轻松的感受。 1、上下装颜色相同时&#xff0c;可以选择面料质地不同的服装…

趣题:怎么从一帮女装大佬中分辨出谁是真妹子?(大雾)

尝试一篇仿m67风格的博客。 你受邀参加一场女装聚会&#xff0c;除了你和聚会组织者之外还有n个人参加&#xff0c;这些人你都不认识。 组织者告诉你&#xff1a;这场聚会上所有人都会穿女装&#xff0c;但其中有一部分是真妹子&#xff0c;另外一些则是女装大佬。 作为直男…

女装大佬

F. 女装大佬 什么样才能算的上牛逼的程序员&#xff1f;当然是女装大佬了&#xff0e;这一天在操场上&#xff0c;有很多男人很多女人和很多的女装大佬&#xff0e;张队长想要把他们排成&#xff4d;列&#xff0c;每列一个人&#xff0e;要求女装大佬必须要在男人和女人中间&…

聊聊这个火爆GitHub的女装大佬项目

前段时间&#xff0c;一个名叫“Dress”的女装大佬开源项目在GitHub迅速蹿红&#xff0c;并引发广大程序员的热议 从这个项目介绍&#xff0c;大概可以看出这是一个通过教授用户上传一张女装照来学习如何在GitHub上克隆项目&#xff0c;创建分支&#xff0c;提交和同步修改&…