Number of Boomerangs
来源:互联网 发布:java调用exe程序 参数 编辑:程序博客网 时间:2024/06/06 11:01
这道题的思路不是很难,就是要挨个算距离,然后做一个表,用排列组合的A算所求的值。问题在于,这道题,可以说是时间换内存。由于平方的数很大,如果你在for的最外边用map,内存是不够的,所以要在第一个平方里面用,会造成一些时间上的重复,ab ba都要算
class Solution {public: int numberOfBoomerangs(vector<pair<int, int>>& points) { int re=0; for(int i=0;i<points.size();i++) { unordered_map<long,int> summary; for(int j=0;j<points.size();j++) { if(i==j) continue; int a=points[i].first-points[j].first; int b=points[i].second-points[j].second; int key=a*a+b*b; summary[key]++; } for(auto a:summary) { re+=a.second*(a.second-1); } } return re; }};
这个很机智,每当要增加一个数,就加上前面的的数*2,比如原来是n,n*(n-1),现在是n+1,(n+1)*(n),相减就是2*n
int numberOfBoomerangs(vector<pair<int, int>>& points) { int booms = 0; for (auto &p : points) { unordered_map<double, int> ctr(points.size()); for (auto &q : points) booms += 2 * ctr[hypot(p.first - q.first, p.second - q.second)]++; } return booms;}
0 0
- 447. Number of Boomerangs
- Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- Leetcode Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs*
- LEETCODE--Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- LeetCode : Number of Boomerangs
- Google 宣布 Android 将加入 Java 8 的原生支持
- 如何自己做Zabbix数据导出功能(下)
- UML概述与详解
- DNS查询
- Android Things专题2 硬件介绍
- Number of Boomerangs
- 里氏替换原则
- 软件测试的6个对象
- Linux I2C设备驱动编写(三)-实例分析AM3359
- 插入排序讲解
- 《揭秘Angular2》一书中Helloworld的实例代码Failed to compile.
- static关键字
- 多线程_死锁问题概述和使用
- 结构化编程 —— 顺序、分支(选择)、循环