1每日吐槽
2021-9-13
今天leetcode每日一题对我来说可是有点恶心了,刚刚开始一眼看出暴力破解但是超时,然后想了半天没想出什么其他方法,看了题解还是暴力,但是用哈希表优化了,自己也是根据题解做出来的,感觉代码都差不多。
2.每日一题 - 447 回旋镖的数量
刚刚开始是直接使用三层循环暴力破解,超时了。。。
后来根据题解使用哈希表进行优化
public class Solution447 {
public int numberOfBoomerangs(int[][] points) {
int count = 0;
for(int i = 0;i < points.length;i++){
HashMap<Integer,Integer> hashMap = new HashMap<>();
for(int j = 0;j < points.length;j++){
if(j == i){
continue;
}
int powX_2 = (int) Math.pow(points[i][0] - points[j][0],2);
int powY_2 = (int) Math.pow(points[i][1] - points[j][1],2);
hashMap.put(powX_2 + powY_2,hashMap.getOrDefault(powX_2 + powY_2,0) + 1);
}
Set<Map.Entry<Integer,Integer>> mapEntry = hashMap.entrySet();
for(Map.Entry<Integer,Integer> entry : mapEntry){
int val = entry.getValue();
count += (val * (val - 1));
}
}
return count;
}
}