LeetCode——447. 回旋镖的数量

大佬,牛!!!

  • 题目:给你一个n*2的数组,表示n个点。然后让你从中选择三个点i,j,k,使得i到j和i到k的欧氏距离相等。问一共有多少种情况。需要注意的是,假设i,j,k是满足条件的,那么i,k,j其实也是满足条件的,并且这是两种情况。
  • 我的思路:我的思路就是先来两个for循环,然后确定前面两个点,然后根据几何法找第三个点。事先我已经把点都放在一个set集合了,set是string的,内容是点的坐标,然后用逗号拼接。这里说的几何法就是找已知两个点的x的差距(xGap)和y的差距(yGap),然后让i点的x加减xGap和Ygap、i点的y加减xGap和Ygap,最后组合一下。注意重叠的情况就好了,但是目前测下来不太对。
  • 大佬的思路:大佬的思路就是for循环点,然后构建点i到其他点的map集合,key表示距离,value表示数量。然后遍历map,如果map的value是m,则其实有A(m,2)=m*(m-1)种情况。
  • 技巧:哈希

java代码

class Solution {public int numberOfBoomerangs(int[][] points) {if (points.length < 3) {return 0;}int ans = 0;for (int[] p : points) {Map<Integer, Integer> cnt = new HashMap<Integer, Integer>();for (int[] q : points) {int dis = (p[0] - q[0]) * (p[0] - q[0]) + (p[1] - q[1]) * (p[1] - q[1]);cnt.put(dis, cnt.getOrDefault(dis, 0) + 1);}for (Map.Entry<Integer, Integer> entry : cnt.entrySet()) {int m = entry.getValue();ans += m * (m - 1);}}return ans;}
}
  • 总结:其实解题的关键在于这个map的构建,感觉这个题跟leetcode的第一题有异曲同工之妙。

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

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

相关文章

学校服务器安装anaconda并配置pytorch环境

学校服务器安装anaconda并配置pytorch环境 1.下载Anaconda2.传到xftp中3.在终端运行脚本命令4.安装pytorch4.1 查看cuda版本4.2 创建自己的环境4.3 下载pytorch4.4 验证pytorch是否安装成功 参考视频&#xff1a;远程服务器安装anaconda并配置pytorch环境 使用服务器运行项目&a…

软件测试大作业||测试计划+测试用例+性能用例+自动化用例+测试报告

xxx学院 2023—2024 学年度第二学期期末考试 《软件测试》&#xff08;A&#xff09;试题&#xff08;开卷&#xff09; 题目&#xff1a;以某一 web 系统为测试对象&#xff0c;完成以下文档的编写&#xff1a; &#xff08;满分 100 分&#xff09; &#xff08;1&am…

简单易懂的理解 PyTorch 中 Transformer 组件

目录 torch.nn子模块transformer详解 nn.Transformer Transformer 类描述 Transformer 类的功能和作用 Transformer 类的参数 forward 方法 参数 输出 示例代码 注意事项 nn.TransformerEncoder TransformerEncoder 类描述 TransformerEncoder 类的功能和作用 Tr…

普中STM32-PZ6806L开发板(有点悲伤的故事)

简介 关于我使用 普中STM32-PZ6806L做了做了一些实验, 不小心输入12V&#xff0c;导致核心板等被烧坏, 为了利用电路和资源, 搭建了STM32F103CBT6并使用普中STM32-PZ6806L上面没有烧坏的模块的故事。 普中STM32-PZ6806L开发板 这块的STM32F103ZET6部分算是Closed了, 不准备换核…

docker compose 搭建ES集群的详细步骤,并去掉验证,使用http访问

要使用 Docker Compose 搭建一个 Elasticsearch 集群&#xff0c;并配置为不使用验证&#xff0c;同时使用 HTTP 访问&#xff0c;你可以遵循以下步骤&#xff1a; 步骤 1: 安装 Docker 和 Docker Compose 确保你的系统上已安装 Docker 和 Docker Compose。如果尚未安装&…

freertos——任务通知知识总结与任务通知模拟及信号量实验、消息邮箱实验、事件标志组实验

1.任务通知概念 任务通知&#xff1a;用来通知任务的&#xff0c;任务控制块中的结构体成员变量 ulNotifiedValue就是这个通知值&#xff0c;不需要另外创建一个结构体可以直接接受别人发过来的通知 2.任务通知的优势及劣势 任务通知的优势&#xff1a; 效率更高 &#xff…

Hive基础知识(四):Hive 元数据配置到 MySQL

1. 拷贝驱动 将 MySQL 的 JDBC 驱动拷贝到 Hive 的 lib 目录下 [zzdqhadoop100 software]$ cp /home/atguigu/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib 2. 配置 Metastore 到 MySQL 1&#xff09;在$HIVE_HOME/conf 目录下新建 hive-site.xml 文件 [zzdqhadoop100 s…

DevExpress历史安装文件包集合

Components - DevExpress.NET组件安装包此安装程序包括所有 .NET Framework、.NET Core 3 和 .NET 5、ASP.NET Core 和 HTML/JavaScript 组件和库&#xff08;Web和桌面应用程序开发只需要安装此文件即可&#xff09;。 注意&#xff1a;自DevExpress21.1版本之后&#xff0c;该…

Python 动态变量名称的使用

Python 动态变量名称的使用 引言正文 引言 今天遇到了一个问题&#xff0c;那就是如何在 Python 中使用动态变量名称。那么为什么会想要使用动态变量名称呢&#xff1f;比如&#xff0c;我们有五个对象&#xff0c;分别为: rectangle1 rectangle2 rectangle3 rectangle4 rect…

Altium Designer实用系列(六)----AD问题整理,持续更新......

本篇博客会对粉丝提出的问题进行整理汇总&#xff0c;博客会持续更新… 一、 问题描述 问题1&#xff1a; 为什么我的ad点击设计之后没有update pcb document 原因&#xff1a;由于在工程中只有schDoc文件&#xff0c;没有PcbDoc&#xff0c;而导致没有“设计”–>update …

TypeScript 和 jsdom 库创建爬虫程序示例

TypeScript 简介 TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集&#xff0c;可以编译生成纯 JavaScript 代码。TypeScript 增加了可选的静态类型和针对对象的编程功能&#xff0c;使得开发更加大规模的应用容易。 jsdom 简介 jsdom 是一个…

oracle 19c容器数据库数据加载和传输-----SQL*Loader(一)

目录 数据加载 &#xff08;一&#xff09;控制文件加载 1.创建用户执行sqlldr 2.创建文本文件和控制文件 3.查看表数据 4.查看log文件 &#xff08;二&#xff09;快捷方式加载 1.system用户执行 2.查看表数据 3.查看log文件 外部表 数据加载和传输的工具&#xff1…

【docker】centos7安装harbor

目录 零、前提一、下载离线包二、安装三、访问四、开机自启 零、前提 1.前提是已经安装了docker和docker-compose 一、下载离线包 1. csdn资源&#xff1a;harbor-offline-installer-v2.10.0.tgz 2. 百度云盘&#xff08;提取码&#xff1a;ap3t&#xff09;&#xff1a;harbo…

彻底卸载Microsoft Edge的几种方法

在Windows 10或更高版本的操作系统中&#xff0c;由于Microsoft Edge浏览器与系统深度集成&#xff0c;常规的卸载方法有时可能无法完全移除。然而&#xff0c;你可以尝试以下步骤来尽可能彻底地卸载Microsoft Edge&#xff1a; 方法1&#xff1a;通过设置应用卸载Microsoft Ed…

2023三星齐发,博客之星、华为OD、Java学习星球

大家好&#xff0c;我是哪吒。 一、回顾2023 2023年&#xff0c;华为OD成了我的主旋律&#xff0c;一共发布了561篇文章&#xff0c;其中包含 368篇华为OD机试的文章&#xff1b;100篇Java基础的文章40多篇MongoDB、Redis的文章&#xff1b;30多篇数据库的文章&#xff1b;2…

Java多线程并发篇----第二篇

系列文章目录 文章目录 系列文章目录前言一、ExecutorService、 Callable、 Future 有返回值线程二、基于线程池的方式三、4 种线程池前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去…

VS2022 | 调整适配虚幻5的设置

VS2022 | 调整适配虚幻5的设置

系统存储架构升级分享 | 京东云技术团队

一、业务背景 系统业务功能&#xff1a;系统内部进行数据处理及整合, 对外部系统提供结果数据的初始化(写)及查询数据结果服务。 系统网络架构: 部署架构对切量上线的影响 - 内部管理系统上线对其他系统的读业务无影响分布式缓存可进行单独扩容, 与存储及查询功能升级无关通过…

1.2 Hadoop概述

小肥柴的Hadoop之旅 1.2 Hadoop概述 目录1.2 Hadoop概述1.2.1 回归问题1.2.2 Google的三篇论文1.2.3 Hadoop的诞生过程1.2.4 Hadoop特点简介 参考文献和资料 ) 目录 1.2 Hadoop概述 1.2.1 回归问题 通过前一篇帖子的介绍&#xff0c;特别是问题思考部分的说明&#xff0c;我…

GCN的使用和包的安装(超详细)

文章目录 工具包安装方法首先进入官网&#xff0c;找到安装包的地址进入后&#xff0c;找到自己的torch版本进入后&#xff0c;将每种对应的包都下载到本地&#xff0c;用本地命令安装然后就是本地安装了最后就是pip install pytorch_geometric 工具包安装方法 一定参考其GITH…