day-03 回旋镖的数量
2024-01-09 07:09:14
思路:
用map集合记录相同距离的组合数,HashMap<Integer,Integer>,前一个值表示距离,后一个值表示组合数
解题方法:
用两次for循环,记录相同距离的组合数,统计出总的可行组合数,组合数*2即为答案
class Solution {
public int numberOfBoomerangs(int[][] points) {
int ans=0;
for(int []p:points){
HashMap<Integer,Integer> hashMap=new HashMap<>();
for(int []q:points){
if(p[0]==q[0]&&p[1]==q[1]) continue;
int dis=(p[0]-q[0])*(p[0]-q[0])+(p[1]-q[1])*(p[1]-q[1]);
int num=hashMap.getOrDefault(dis,0);
ans=ans+num;
hashMap.put(dis,num+1);
}
}
return ans*2;
}
}
注:本来暴力的,结果时间超时,看了答案,恍然大悟
文章来源:https://blog.csdn.net/qq_53568730/article/details/135466708
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!