LC 1401. Circle and Rectangle Overlapping

link

 

 解法:

找离圆心最近的矩形上的点,比较此点到圆心的距离和半径。

class Solution {
public:
    bool checkOverlap(int radius, int x_center, int y_center, int x1, int y1, int x2, int y2) {
        int xclose,yclose;
        if(x_center<x1) xclose=x1;
        else if(x_center>x2) xclose=x2;
        else xclose=x_center;
        
        if(y_center<y1) yclose=y1;
        else if(y_center>y2) yclose=y2;
        else yclose=y_center;
        
        return (x_center-xclose)*(x_center-xclose)+(y_center-yclose)*(y_center-yclose)<=radius*radius;
    }
};

 

posted @ 2020-04-05 09:35  feibilun  阅读(273)  评论(0编辑  收藏  举报