力扣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;
    }
};
相关推荐
流星白龙1 小时前
【C++算法】50.分治_归并_翻转对
c++·算法
Java致死2 小时前
费马小定理
算法·费马小定理
不吃元西3 小时前
leetcode 74. 搜索二维矩阵
算法·leetcode·矩阵
小开不是小可爱3 小时前
leetcode_454. 四数相加 II_java
java·数据结构·算法·leetcode
aaaweiaaaaaa4 小时前
蓝桥杯c ++笔记(含算法 贪心+动态规划+dp+进制转化+便利等)
c语言·数据结构·c++·算法·贪心算法·蓝桥杯·动态规划
Hesse4 小时前
希尔排序:Python语言实现
python·算法
h^hh4 小时前
pipe匿名管道实操(Linux)
数据结构·c++·算法
dr李四维4 小时前
解决缓存穿透的布隆过滤器与布谷鸟过滤器:谁更适合你的应用场景?
redis·算法·缓存·哈希算法·缓存穿透·布隆过滤器·布谷鸟过滤器
亓才孓4 小时前
[leetcode]01背包问题
算法·leetcode·职场和发展
学习编程的gas5 小时前
数据结构——二叉树
数据结构·算法