力扣1401. 圆和矩形是否有重叠

用矢量计算:

cpp 复制代码
class Solution {
public:
    bool checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {
        //矩形中心
        float Tx=(float)(x1+x2)/2;
        float Ty=(float)(y1+y2)/2;
        //强行进行对称操作,只考虑第一象限
        if(xCenter<Tx){
            xCenter=2*Tx-xCenter;
        }
        if(yCenter<Ty){
            yCenter=2*Ty-yCenter;
        }
        //圆心到对角顶点的距离
        int rDTx=xCenter-x2;
        int rDTy=yCenter-y2;
        //四种情况
        if(rDTx>0&&rDTy>0){
            return rDTx*rDTx+rDTy*rDTy<=radius*radius;
        }
        else if(rDTx<=0&&rDTy>0){
            return rDTy<=radius;
        }
        else if(rDTy<=0&&rDTx>0){
            return rDTx<=radius;
        }
        else if(rDTx<=0&&rDTy<=0){
            return true;
        }
        return false;
    }
};
相关推荐
类球状2 分钟前
顺序表 —— OJ题
算法
Miraitowa_cheems26 分钟前
LeetCode算法日记 - Day 11: 寻找峰值、山脉数组的峰顶索引
java·算法·leetcode
CoovallyAIHub1 小时前
方案 | 动车底部零部件检测实时流水线检测算法改进
深度学习·算法·计算机视觉
CoovallyAIHub1 小时前
方案 | 光伏清洁机器人系统详细技术实施方案
深度学习·算法·计算机视觉
lxmyzzs1 小时前
【图像算法 - 14】精准识别路面墙体裂缝:基于YOLO12与OpenCV的实例分割智能检测实战(附完整代码)
人工智能·opencv·算法·计算机视觉·裂缝检测·yolo12
洋曼巴-young1 小时前
240. 搜索二维矩阵 II
数据结构·算法·矩阵
楼田莉子2 小时前
C++算法题目分享:二叉搜索树相关的习题
数据结构·c++·学习·算法·leetcode·面试
pusue_the_sun3 小时前
数据结构——栈和队列oj练习
c语言·数据结构·算法··队列
大锦终3 小时前
【算法】模拟专题
c++·算法
Xの哲學4 小时前
Perf使用详解
linux·网络·网络协议·算法·架构