讨论/题目交流/🐱 第 23 场夜喵双周赛/
🐱 第 23 场夜喵双周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛

image.png

3 分 - 统计最大组的数目
5 分 - 构造 K 个回文字符串
5 分 - 圆和矩形是否有重叠
6 分 - 做菜顺序

展开讨论

圆和矩形是否有重叠

image.png

public boolean checkOverlap(int radius, int x_center, int y_center, int x1, int y1, int x2, int y2) {
        // 圆整体在在矩形 上、下、左、右 位置的且不相交情况
        if (x_center + radius < x1 || x_center - radius > x2 || y_center + radius < y1 || y_center - radius > y2) {
            return false;
        }

        if (x_center < x1) {
            if(y_center>y2){
                // 圆心在左上范围 判断是否相交
                return dist(x_center, y_center, x1, y2, radius);
            }
            if(y_center<y1){
                // 圆心在左下范围 判断是否相交
                return dist(x_center, y_center, x1, y1, radius);
            }
        }
        if (x_center > x2) {
            if(y_center>y2){
                // 圆心在右上范围 判断是否相交
                return dist(x_center, y_center, x2, y2, radius);
            }
            if(y_center<y1){
                // 圆心右下范围 判断是否相交
                return dist(x_center, y_center, x2, y1, radius);
            }
        }

        return true;
    }

    public boolean dist(int x1, int y1, int x2, int y2,int r) {
       double dist =  Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
        return dist<r;
    }
2
展开全部 28 讨论