[LeetCode]447.Number of Boomerangs
来源:互联网 发布:设置数据的有效范围 编辑:程序博客网 时间:2024/05/22 11:57
题目大意:点击打开链接
思路:如果有点a,还有另外两个点b和c,如果ab和bc之间的距离相等,有两种排列方法:abc,acb
如果有点a,还有另外三个点b,c和d,如果三个点都和a之间的距离相等,有六种排列方法:abc,acb,acd,adc,abd,adb
如果有n个点与a点之间的距离相等,那么排列方式为n*(n-1)种
所以问题就成了遍历所有点,让每个点都做一次a,然后遍历其他所有点,统计和a距离相等的点的个数
注意:对二维数组的理解,有n行,每一行的长度是2,分别代表该点的横纵坐标
例如:points[i]表示每一行,例如points[i]=a,则a[0]表示这个点的横纵表,a[1]表示这个点的纵坐标
public class Solution { public int numberOfBoomerangs(int[][] points) { int result=0; if(points==null || points.length==0){ return 0; } Map<Integer,Integer> map=new HashMap<>(); for(int i=0;i<points.length;i++){ for(int j=0;j<points.length;j++){ if(i==j){ continue; } int dis=getDistance(points[i],points[j]); map.put(dis,map.getOrDefault(dis,0)+1); } for(Integer key:map.keySet()){ //对于每一个i行的值,都有其他不同的距离相同的点组成的map int sum=map.get(key); result+=sum*(sum-1); } map.clear(); //因此遍历一个新的i时,要清空map } return result; } private int getDistance(int[] a,int[] b){ //两点间距离计算:(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) int dx=a[0]-b[0]; int dy=a[1]-b[1]; return dx*dx+dy*dy; }}
阅读全文
0 0
- LeetCode 447. Number of Boomerangs
- leetcode:447. Number of Boomerangs
- leetcode 447. Number of Boomerangs
- LeetCode 447. Number of Boomerangs
- 【LeetCode】 447. Number of Boomerangs
- [LeetCode]447. Number of Boomerangs
- [leetcode] 447. Number of Boomerangs
- Leetcode 447. Number of Boomerangs
- LeetCode 447. Number of Boomerangs
- Leetcode-447. Number of Boomerangs
- [LeetCode]447. Number of Boomerangs
- 【Leetcode】447. Number of Boomerangs
- leetcode 447. Number of Boomerangs
- [leetcode]: 447. Number of Boomerangs
- [LeetCode] 447. Number of Boomerangs
- [LeetCode]447.Number of Boomerangs
- leetcode 447. Number of Boomerangs
- LeetCode 447. Number of Boomerangs
- 高并发编程必备基础总结
- opensips-cp搭建过程
- 【MR】经典的MapReduce(MapReduce 1) 运行机制
- 有Return情况下的try catch finally执行顺序
- 超实用的「Exception」和「Error」解决案例
- [LeetCode]447.Number of Boomerangs
- 安卓入门
- Android中定时执行任务的3种实现方法
- 存储过程中的游标使用
- FPGA中usb-blaster驱动的安装
- Appium 从安装到应用
- Spring 事务管理机制概述
- 安全广播LocalBroadcastManager
- 利用缓存实现分布式并发锁