当前位置: 首页 > news >正文

高端的程序开发拼多多标题关键词优化方法

高端的程序开发,拼多多标题关键词优化方法,昌平网站开发多少钱,wdcp搭建网站题目链接 Leetcode.1401 圆和矩形是否有重叠 Rating : 1709 题目描述 给你一个以 (radius, xCenter, yCenter)表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2),其中 (x1, y1)是矩形左下角的坐标,而 (x2, y2)是右上角的坐标。 如果圆和矩…

题目链接

Leetcode.1401 圆和矩形是否有重叠 Rating : 1709

题目描述

给你一个以 (radius, xCenter, yCenter)表示的圆和一个与坐标轴平行的矩形 (x1, y1, x2, y2),其中 (x1, y1)是矩形左下角的坐标,而 (x2, y2)是右上角的坐标。

如果圆和矩形有重叠的部分,请你返回 true,否则返回 false

换句话说,请你检测是否 存在(xi, yi),它既在圆上也在矩形上(两者都包括点落在边界上的情况)。

示例 1 :

在这里插入图片描述

输入:radius = 1, xCenter = 0, yCenter = 0, x1 = 1, y1 = -1, x2 = 3, y2 = 1
输出:true
解释:圆和矩形存在公共点 (1,0) 。

示例 2 :

输入:radius = 1, xCenter = 1, yCenter = 1, x1 = 1, y1 = -3, x2 = 2, y2 = -1
输出:false

示例 3 :

在这里插入图片描述

输入:radius = 1, xCenter = 0, yCenter = 0, x1 = -1, y1 = 0, x2 = 0, y2 = 1
输出:true

提示:

  • 1<=radius<=20001 <= radius <= 20001<=radius<=2000
  • −104<=xCenter,yCenter<=104-10^4 <= xCenter, yCenter <= 10^4104<=xCenter,yCenter<=104
  • −104<=x1<x2<=104-10^4 <= x1 < x2 <= 10^4104<=x1<x2<=104
  • −104<=y1<y2<=104-10^4 <= y1 < y2 <= 10^4104<=y1<y2<=104

分析:
在这里插入图片描述

(x0,y0)是矩形的中心点,将其作为坐标系的原点,便于处理。

c是矩形的中心 (x0,y0)到圆心(xCenter,yCenter)的向量。

a是矩形的中心 (x0,y0)(x2,y2)的向量。

b就是我们要求的 矩形 到 圆的向量,b = { c[0] - a[0] , c[1] - a[1] }

我们只需要判断 向量b的模长 是否小于等于 圆的半径radius即可(判断 矩形 是否和 圆 相交)。

还有一些特殊情况:

此时 c[0] - a[0] < 0,所以我们就可以把它看成 0,即b = { 0 , c[1] - a[1] },就变成我们实际上要求的向量 u

在这里插入图片描述

此时 c[1] - a[1] < 0,所以我们就可以把它看成 0,即b = { c[0] - a[0] ,0 },就变成我们实际上要求的向量 u

在这里插入图片描述

判断圆和矩形是否相交参考这个

时间复杂度 : O(1)O(1)O(1)

C++代码:

class Solution {
public:bool checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {//求矩形中心点double x0 = (x1+x2)/2.0;double y0 = (y1+y2)/2.0;//求向量 c , a//用绝对值是为了让 x分量 和 y分量 都为正数,相当于将其映射到了第一象限(因为第一象限的坐标值都是正数)vector<double> c {abs(xCenter - x0),abs(yCenter - y0)};vector<double> a {x2 - x0,y2 - y0};//求向量 b 如果其中一个分量是负数的话,直接看作0vector<double> b {max(c[0] - a[0],0.0),max(c[1] - a[1],0.0)};return b[0] * b[0] + b[1] * b[1] <= radius * radius;}
};

Java代码:

class Solution {public boolean checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {double x0 = (x1+x2)/2.0;double y0 = (y1+y2)/2.0;double[] c = new double[2];double[] a = new double[2];double[] b = new double[2];c[0] = Math.abs(xCenter - x0);c[1] = Math.abs(yCenter - y0);a[0] = x2 - x0;a[1] = y2 - y0;b[0] = Math.max(c[0] - a[0],0.0);b[1] = Math.max(c[1] - a[1],0.0);return b[0]*b[0] + b[1]*b[1] <= radius*radius;}
}
http://www.hkea.cn/news/698542/

相关文章:

  • 广州外贸b2b网站建设刷钻业务推广网站
  • 做企业网站用什么怎样宣传自己的品牌
  • 濮阳做网站的公司我的百度账号
  • 美食网站开发如何做好网络营销工作
  • 网站建设案例资料今天的新闻内容
  • 台州专业网站建设方案seo软文代写
  • 个人网站 百度推广全球搜索大全
  • 网站消息推送5118素材网站
  • 天津 响应式网站设计企业网站模板免费
  • 网站用花生壳nas做存储百度seo发包工具
  • wordpress cache深圳纯手工seo
  • 怎样找到正规代加工网站百度地图3d实景地图
  • 潍坊网站建设公司网站搭建免费
  • 惠州做网站好的公司下载百度语音导航地图安装
  • 春节网站怎么做小说排行榜百度搜索风云榜
  • 商城服务是什么软件seo是指什么岗位
  • 无锡网站建设有限公司网站快速收录的方法
  • 网站建设通报推广网站多少钱
  • 网络推广公司成都seo排名优化教程
  • 一台手机登录微信网页版西安优化外
  • 如何做旅游攻略网站长沙seo优化推荐
  • 长春火车站电话咨询电话快排seo
  • 龙城建设网站公司网站内容优化方法
  • 南通网站建设搭建网站卖链接
  • 驻马店市做网站seo臻系统
  • 找公司做网站怎么图片都要自己找百度推广官网电话
  • 网站小样用什么做seo外链平台热狗
  • 建站点的步骤sem是什么
  • 深圳专业做网站的衡水网站优化推广
  • 徐汇科技网站建设2345中国最好的网址站