手机做网站自己做,网站制作公司起名,全国室内设计公司排名,网站建设怎样接业务1. 题目
给定平面上 n 对不同的点#xff0c;“回旋镖” 是由点表示的元组 (i, j, k) #xff0c;其中 i 和 j 之间的距离和 i 和 k 之间的距离相等#xff08;需要考虑元组的顺序#xff09;。
找到所有回旋镖的数量。你可以假设 n 最大为 500#xff0c;所有点的坐标在…1. 题目
给定平面上 n 对不同的点“回旋镖” 是由点表示的元组 (i, j, k) 其中 i 和 j 之间的距离和 i 和 k 之间的距离相等需要考虑元组的顺序。
找到所有回旋镖的数量。你可以假设 n 最大为 500所有点的坐标在闭区间 [-10000, 10000] 中。
示例:
输入:
[[0,0],[1,0],[2,0]]
输出:
2
解释:
两个回旋镖为 [[1,0],[0,0],[2,0]] 和 [[1,0],[2,0],[0,0]]来源力扣LeetCode 链接https://leetcode-cn.com/problems/number-of-boomerangs 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
class Solution {
public:int numberOfBoomerangs(vectorvectorint p) {unordered_mapint,int m;int i, j, dis, ans 0;for(i 0; i p.size(); i){ //以i为顶点的m.clear();for(j 0; j p.size(); j)if(i ! j){dis pow(p[i][0]-p[j][0],2)pow(p[i][1]-p[j][1],2);m[dis];//距离一样的计数1}for(auto it m.begin(); it ! m.end(); it)ans it-second*(it-second-1); //每个距离一样的点集里An 2 种排列}return ans;}
};468 ms 86.6 MB