LeetCode 1453. 圆形靶内的最大飞镖数量(几何题)

1. 题目

墙壁上挂着一个圆形的飞镖靶。现在请你蒙着眼睛向靶上投掷飞镖。

投掷到墙上的飞镖用二维平面上的点坐标数组表示。飞镖靶的半径为 r 。

请返回能够落在 任意 半径为 r 的圆形靶内或靶上的最大飞镖数

示例 1:
在这里插入图片描述

输入:points = [[-2,0],[2,0],[0,2],[0,-2]], r = 2
输出:4
解释:如果圆形的飞镖靶的圆心为 (0,0) ,半径为 2 ,
所有的飞镖都落在靶上,此时落在靶上的飞镖数最大,值为 4

示例 2:
在这里插入图片描述

输入:points = [[-3,0],[3,0],[2,6],[5,4],[0,9],[7,8]], r = 5
输出:5
解释:如果圆形的飞镖靶的圆心为 (0,4) ,半径为 5 ,
则除了 (7,8) 之外的飞镖都落在靶上,此时落在靶上的飞镖数最大,值为 5 。示例 3:
输入:points = [[-2,0],[2,0],[0,2],[0,-2]], r = 1
输出:1示例 4:
输入:points = [[1,2],[3,5],[1,-1],[2,3],[4,1],[1,3]], r = 2
输出:4提示:
1 <= points.length <= 100
points[i].length == 2
-10^4 <= points[i][0], points[i][1] <= 10^4
1 <= r <= 5000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-number-of-darts-inside-of-a-circular-dartboard
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

在这里插入图片描述

class Solution {double cx, cy;//圆心坐标
public:int numPoints(vector<vector<int>>& points, int r) {int x1, x2, y1, y2;double dx, dy;int i, j, k, count, maxcount=1, n = points.size();for(i = 0; i < n; ++i){x1 = points[i][0];y1 = points[i][1];for(j = i+1; j < n; ++j)//i,j为圆上的点{if(i == j)continue;x2 = points[j][0];y2 = points[j][1];count = 2;int d_d = (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);if(d_d > 4*r*r) continue;count = 0;cx = (x1+x2)/2.0-(y2-y1)*sqrt((r*r-d_d/4.0)/d_d), cy = (y1+y2)/2.0+(x2-x1)*sqrt((r*r-d_d/4.0)/d_d);for(k = 0; k < n; ++k){dx = points[k][0]-cx;dy = points[k][1]-cy;if(dx*dx+dy*dy <= r*r)count++;}maxcount = max(maxcount, count);count = 0;cx = (x1+x2)/2.0+(y2-y1)*sqrt((r*r-d_d/4.0)/d_d), cy = (y1+y2)/2.0-(x2-x1)*sqrt((r*r-d_d/4.0)/d_d);for(k = 0; k < n; ++k){dx = points[k][0]-cx;dy = points[k][1]-cy;if(dx*dx+dy*dy <= r*r)count++;}maxcount = max(maxcount, count);}}return maxcount;}
};

52 ms 8 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

熟悉linux运行环境,实验一 熟悉Ubuntu环境

实验一熟悉Ubuntu环境【实验目的】1&#xff0e;了解Ubuntu系统基本操作方法&#xff0c;学会独立使用该系统。2&#xff0e;熟悉Ubuntu下如何编辑、编译和运行一个C语言程序。3&#xff0e;学会利用gcc、gdb编译、调试C程序。【预习内容】1&#xff0e;预习Ubuntu下各种应用程…

Pandas入门1(DataFrame+Series读写/Index+Select+Assign)

文章目录1. Creating, Reading and Writing1.1 DataFrame 数据框架1.2 Series 序列1.3 Reading 读取数据2. Indexing, Selecting, Assigning2.1 类python方式的访问2.2 Pandas特有的访问方式2.2.1 iloc 基于index访问2.2.2 loc 基于label标签访问2.3 set_index() 设置索引列2.4…

关于Visual C#.NET数据库开发经典案例解析(附光盘两张)(珍藏版)—的读后感...

关于Visual C#.NET数据库开发经典案例解析&#xff08;附光盘两张&#xff09;&#xff08;珍藏版&#xff09;— 评论读后感&#xff1a;里面的内容很经典&#xff0c;很实用读后感&#xff1a;给初学者是好&#xff0c;但是是比较旧的了&#xff01;VS2003 C/S的读后感&#…

linux git还原文件,Gitlab备份到windows、在Linux恢复

一 备份gitlab为完整压缩包# 在目录/var/opt/gitlab/backups/ 创建备份文件gitlab-rake gitlab:backup:create/var/opt/gitlab/backups/1559614181_2019_06_04_10.7.7_gitlab_backup.tar查看备份文件夹容量df -h /var/opt/gitlab/backups二 恢复gitlab复制gitlab_backup.tar到对…

LeetCode 372. 超级次方(快速幂)

1. 题目 你的任务是计算 ab 对 1337 取模&#xff0c;a 是一个正整数&#xff0c;b 是一个非常大的正整数且会以数组形式给出。 示例 1: 输入: a 2, b [3] 输出: 8示例 2: 输入: a 2, b [1,0] 输出: 1024来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&…

c#让电脑锁定、注销、关机

代码 usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingMicrosoft.Win32;usingSystem.Runtime.InteropServices;usingSystem.IO;usingSystem…

linux错误自动报告工具,linux – 关闭abrt的电子邮件通知(自动错误报告工具)

我正在配置CentOS 6.2并且已经看到了一些“[abrt]完整崩溃报告”电子邮件.我知道abrt对于创建崩溃转储非常有用,所以我不想禁用该服务,我只是想停止获取崩溃报告电子邮件.我可能不得不在/etc/abrt/abrt.conf中添加一些配置文件.我似乎无法在搜索中找到任何内容.任何的想法&…

Pandas入门2(DataFunctions+Maps+groupby+sort_values)

文章目录3. Summary Functions and Maps3.1 Summary Functions 数据总结函数3.1.1 describe()3.1.2 mean()&#xff0c;median()&#xff0c;idxmax()&#xff0c;unique()&#xff0c;value_counts()3.2 Maps 映射3.2.1 map()3.2.2 apply()3.2.3 内置转换方法4. Grouping and …

Adobe和苹果相互推诿 不支持Flash谁之过?

针对苹果CEO史蒂夫乔布斯 (Steve Jobs)的指责&#xff0c;Adobe CTO凯文林奇(Kevin Lynch)日前给予回应&#xff0c;称苹果iPad不支持Flash完全是苹果的错。上周三&#xff0c;苹果发布了业内期待已久的平板电脑iPad&#xff0c;但由于不支持 Flash而遭到了用户抱怨。对此&…

linux视频在windows播放器,适用于Windows和Linux的免费多媒体播放器SMPlayer 18.6.0发布 - 爱绿豆...

SMPlayer是一个很好的 MPlayer 电影播放程序前端&#xff0c;可以支持大部分的视频和音频文件。它支持音频轨道切换&#xff0c;允许调节亮度、对比度、色调、饱和度、伽玛值&#xff0c;按照倍速、4倍速等多种速度回放&#xff0c;还可以进行音频和字幕延迟调整以同步音频和字…

LeetCode 393. UTF-8 编码验证(位运算)

1. 题目 UTF-8 中的一个字符可能的长度为 1 到 4 字节&#xff0c;遵循以下的规则&#xff1a; 对于 1 字节的字符&#xff0c;字节的第一位设为0&#xff0c;后面7位为这个符号的unicode码。对于 n 字节的字符 (n > 1)&#xff0c;第一个字节的前 n 位都设为1&#xff0c…

OA 办公系统 模块设计

--连接主数据库 use Master go --如果数据库simpleoa 存在&#xff0c;则先删除simpleoa。 if exists (select * from sysdatabases where namesimpleoa) drop database simpleoa go--创建simpleoa数据库 create database simpleoa go-- use simpleoa go--创建用户表 create…

通过java理解linux,Java继承的理解

继承&#xff1a;1)概念把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系&#xff0c;这多个类就具备了这些内容。这个关系叫继承。1.1)定义类时&#xff0c;通过“继承”一个现有的类&#xff0c;子类可以具有父类中的所有属性和…

LeetCode 373. 查找和最小的K对数字(自定义优先队列BFS)

1. 题目 给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff0c;第二个元素来自 nums2。 找到和最小的 k 对数字 (u1,v1), (u2,v2) … (uk,vk)。 示例 1: 输入: nums1 [1,7,11], nums2 [2,4,…

Android中使用Thread线程出现的问题

很多初入Android或Java开发的新手对Thread、Looper、Handler和Message仍然比较迷惑&#xff0c;衍生的有HandlerThread、java.util.concurrent、Task、AsyncTask由于目前市面上的书籍等资料都没有谈到这些问题&#xff0c;今天Android123就这一问题做更系统性的总结.  Androi…

linux防火墙的复规则,Centos下iptables防火墙规则编辑方法 - YangJunwei

今天整理一下Centos下iptables防火墙规则的保存、清除等编辑方法。如已经安装&#xff0c;请跳过。$ yum install iptables二、查看 iptables 防火墙已有规则以下四种方法任选其一即可。$ service iptables status$ /etc/init.d/iptables status (此方法为上一方法的路径执行版…

Blend设计VSM

Silverlight中的ControlTemplate(1)-概念 Silverlight中的ControlTemplate(2)-概念 Silverlight中的ControlTemplate&#xff08;3&#xff09;-Blend设计ControlTemplate 上一篇我是通过Blend简单的演示如何修改ControlTemplate&#xff0c;这一篇关注VSM这个部分。 概念的东…

Pandas入门3(dtype+fillna+replace+rename+concat+join)

文章目录5. dtype 数据类型6. Missing data 缺失值6.1 查找缺失值 pd.isnull()&#xff0c;pd.notnull()6.2 填补缺失值 fillna()&#xff0c;replace()7. Renaming and Combining 重命名、合并7.1 Renaming 重命名7.2 Combining 合并数据learn from https://www.kaggle.com/l…

Linux连接状态为syn_recv,linux 服务器 syn*** 大量SYN_RECV状态处理

1、查看连接状态netstat -nat | awk /^tcp/{S[$NF]}END{for (a in S) print a,S[a]}SYN_RECV表示正在等待处理的请求数&#xff1b;ESTABLISHED表示正常数据传输状态&#xff1b;TIME_WAIT表示处理完毕&#xff0c;等待超时结束的请求数。状态&#xff1a;描述CLOSED&#xff1…

LeetCode 388. 文件的最长绝对路径(不用栈,前缀和)

1. 题目 假设我们以下述方式将我们的文件系统抽象成一个字符串: 字符串 "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext" 表示: dirsubdir1subdir2file.ext目录 dir 包含一个空的子目录 subdir1 和一个包含一个文件 file.ext 的子目录 subdir2 。 字符串 "dir\n…