447. Number of Boomerangs 难度:easy
来源:互联网 发布:2008年网络歌曲大全 编辑:程序博客网 时间:2024/04/29 05:37
题目:
Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of points (i, j, k)
such that the distance between i
andj
equals the distance between i
and k
(the order of the tuple matters).
Find the number of boomerangs. You may assume that n will be at most 500 and coordinates of points are all in the range [-10000, 10000](inclusive).
Example:
Input:[[0,0],[1,0],[2,0]]Output:2Explanation:The two boomerangs are [[1,0],[0,0],[2,0]] and [[1,0],[2,0],[0,0]]
思路:
若在一组点集{a, b, c, d, ...}中,以点a为一个端点,与dis(a, b)相等的点存在n个(包含点b),因为三元组[a, b, c]与三元组[a, c, b]并不相同,所以实际为排列问题,答案为n(n - 1)。
程序:
class Solution {public: int numberOfBoomerangs(vector<pair<int, int>>& points) { int len = points.size(), res = 0; unordered_map<int, int> m; for (int i = 0; i < len; i++) { for (int j = 0; j < len; j++) { int x = points[i].first - points[j].first; int y = points[i].second - points[j].second; m[x * x + y * y]++; } unordered_map<int, int> :: iterator it; for (it = m.begin(); it != m.end(); it++) { int tmp = it->second; res += tmp * (tmp - 1); } m.clear(); } return res; }};
0 0
- 447. Number of Boomerangs 难度:easy
- LeetCode-Easy部分标签为HashTable 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs*
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- 447. Number of Boomerangs
- OpenGL入门
- 单点登录
- 《算法概论》第8章习题8.3题解
- Redbear DUO初体验
- 最简单的商品模块数据库设计
- 447. Number of Boomerangs 难度:easy
- 简单总结下常用的注入姿势
- git快速上手教程
- 关于sscanf函数的使用
- html文件中flash视频格式(flv、swf)文件的嵌入方法
- oracle行转列——游标方式实现
- 【leetcode】99. Recover Binary Search Tree【java】简单又容易理解的中序遍历的方法
- Web--robots.txt协议
- HTTP状态查询