zoukankan      html  css  js  c++  java
  • 447. Number of Boomerangs

    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 iand j 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:
    2
    
    Explanation:
    The two boomerangs are [[1,0],[0,0],[2,0]] and [[1,0],[2,0],[0,0]]


    给3个点,计算1个点到另外两个点都相等有多少种组合

    hypot(x,y) 计算 x 与 y 平方和的平方根

    C++(386ms):
     1 class Solution {
     2 public:
     3     int numberOfBoomerangs(vector<pair<int, int>>& points) {
     4         int res = 0;
     5         unordered_map<double, int> ctr(points.size());
     6         for (auto p : points) {
     7             for (auto q : points){
     8                 if (p == q)
     9                     continue ;
    10                 double t = hypot(p.first - q.first, p.second - q.second) ;
    11                 ctr[t]++ ;
    12                 res += 2 * (ctr[t]-1);
    13             }
    14             ctr.clear() ;
    15         }
    16         return res;
    17     }
    18 };


  • 相关阅读:
    仿美团pc,koa+ssr(四)
    基本的数据库操作脚本
    jQuery选择器总结
    经常学习参考网站
    WebAPI
    Sqlserver 基本面试题
    truncate和delete的区别
    Webservice,WCF,WebAPI 之间的区别
    WCF 学习
    学习angularJs(1)--引用文件
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/7921686.html
Copyright © 2011-2022 走看看