Blage's Coding Blage's Coding
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
Home
算法
  • 手写Spring
  • SSM
  • SpringBoot
  • JavaWeb
  • JAVA基础
  • 容器
  • Netty

    • IO模型
    • Netty初级
    • Netty原理
  • JVM
  • JUC
  • Redis基础
  • 源码分析
  • 实战应用
  • 单机缓存
  • MySQL

    • 基础部分
    • 实战与处理方案
    • 面试
  • ORM框架

    • Mybatis
    • Mybatis_Plus
  • SpringCloudAlibaba
  • MQ消息队列
  • Nginx
  • Elasticsearch
  • Gateway
  • Xxl-job
  • Feign
  • Eureka
  • 面试
  • 工具
  • 项目
  • 关于
🌏本站
🧸GitHub (opens new window)
  • 数组

  • 链表

  • 字符串

  • 二叉树

  • 动态规划

  • 深搜回溯

  • 数学贪心

    • LCP 33. 蓄水
    • 6455. 使所有字符相等的最小成本
    • 55. 跳跃游戏
    • 2517. 礼盒的最大甜蜜度
    • 2611. 老鼠和奶酪
    • 6449. 收集巧克力
    • 1401. 圆和矩形是否有重叠
    • 2178. 拆分成最多数目的正偶数之和
    • 376. 摆动序列
    • 649. Dota2 参议院
    • 630. 课程表 III
    • 2136. 全部开花的最早一天
    • 2731. 移动机器人
  • 堆栈队列

  • 前缀和

  • 算法设计

  • 位运算

  • WA

  • 算法
  • 数学贪心
phan
2023-06-25

1401. 圆和矩形是否有重叠

# 1401. 圆和矩形是否有重叠 (opens new window)

矩形与圆的相交问题:考虑临界状态,也就是相切或者是只有一个点正好落在圆的边上。进一步转化为圆形到达最短横边和竖边的问题:

  • 考虑圆心x
    • 如果圆心x被矩形y=x1与y=x2包夹,此时圆心到达矩形的最短距离就是圆心到达x=y1和x=y2这两条边的最短距离。
    • 如果圆心x处在矩形的一侧,那么计算圆心x在水平方向上到达y=x1与y=x2的最短距离。
  • 考虑圆心y
    • 如果圆心y被矩形x=y1与x=y2包夹,此时圆心到达矩形的最短距离就是圆心到达y=x1和y=x2这两条边的最短距离。
    • 如果圆心y处在矩形的一侧,那么计算圆心y在水平方向上到达x=y1与x=y2的最短距离。

class Solution {
    public boolean checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {
        int x=0,y=0;
        if(xCenter<x1||xCenter>x2){
            x=xCenter<x1?(xCenter-x1)*(xCenter-x1):(xCenter-x2)*(xCenter-x2);
        }
        if(yCenter<y1||yCenter>y2){
            y=yCenter<y1?(yCenter-y1)*(yCenter-y1):(yCenter-y2)*(yCenter-y2);
        }
        return x+y<=radius*radius;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
编辑 (opens new window)
#Leetcode
上次更新: 2023/12/15, 15:49:57
6449. 收集巧克力
2178. 拆分成最多数目的正偶数之和

← 6449. 收集巧克力 2178. 拆分成最多数目的正偶数之和→

Theme by Vdoing | Copyright © 2023-2024 blageCoder
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式