回旋鏢的數(shù)量

題目描述

給定平面上 n 對(duì)不同的點(diǎn),“回旋鏢” 是由點(diǎn)表示的元組 (i, j, k) ,其中 i 和 j 之間的距離和 i 和 k 之間的距離相等(需要考慮元組的順序)。

找到所有回旋鏢的數(shù)量。你可以假設(shè) n 最大為 500,所有點(diǎn)的坐標(biāo)在閉區(qū)間 [-10000, 10000] 中。

示例:

    輸入:
    [[0,0],[1,0],[2,0]]
    
    輸出:
    2
    
    解釋:
    兩個(gè)回旋鏢為 [[1,0],[0,0],[2,0]] 和 [[1,0],[2,0],[0,0]]

分析

遍歷,以當(dāng)前的節(jié)點(diǎn)為軸,使用map統(tǒng)計(jì)跟當(dāng)前節(jié)點(diǎn)距離一樣的數(shù)量。map的key是距離,value是數(shù)量
再遍歷統(tǒng)計(jì)的結(jié)果,計(jì)算結(jié)果,計(jì)算的方式是:數(shù)量c, c * (c - 1)。表示c個(gè)節(jié)點(diǎn)中取任意兩個(gè)的排列數(shù)。
示例中:
跟1距離相等的個(gè)數(shù)是2,2*(2 - 1) = 2

代碼

class Solution {
public:
    int getDis(pair<int,int> &a, pair<int, int> &b){
        int x = b.first - a.first;
        int y = b.second - a.second;
        return x * x + y * y;
    }
    
    int numberOfBoomerangs(vector<pair<int, int>>& points) {
        int ans = 0;
        for(int i = 0; i < points.size(); i++){
            unordered_map<int,int> m; //統(tǒng)計(jì)與i同距離的個(gè)數(shù)
            for(int j = 0; j < points.size(); j++){
                if(i==j) {
                    continue;
                }
                int d = getDis(points[i], points[j]);
                ++m[d];
            }
            for(auto& it:m) {
                if(it.second < 2) {
                    continue;
                }
                ans += it.second * (it.second - 1);
            }
        }
        return ans;
    }
};

題目鏈接

https://leetcode-cn.com/problems/number-of-boomerangs/description/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自:https://halfrost.com/go_map_chapter_one/ https://half...
    HuJay閱讀 6,484評(píng)論 1 5
  • 算法思想貪心思想雙指針排序快速選擇堆排序桶排序荷蘭國(guó)旗問(wèn)題二分查找搜索BFSDFSBacktracking分治動(dòng)態(tài)...
    第六象限閱讀 4,910評(píng)論 0 0
  • 這兩天在寫文案、計(jì)劃、行業(yè)標(biāo)準(zhǔn)時(shí)會(huì)感覺(jué)無(wú)從下手。當(dāng)我們面對(duì)自己非常了解的行業(yè)和問(wèn)題時(shí),我們也許會(huì)誤以為自己很...
    Davidadu閱讀 573評(píng)論 3 3
  • 今天出高考成績(jī),想必很多家長(zhǎng)昨晚又睡的并不踏實(shí),為什么是"又"呢?聽說(shuō),高考的六月,家長(zhǎng)們必有兩個(gè)夜晚是輾轉(zhuǎn)難眠的...
    ld熊壯壯閱讀 226評(píng)論 0 0
  • 回顧2016年的整年計(jì)劃,完成了大部分,生活過(guò)得不好不壞。 距離2017年,只剩16天的時(shí)間,碼字寫下2017年愿...
    一個(gè)暖心的菇?jīng)?/span>閱讀 350評(píng)論 0 1

友情鏈接更多精彩內(nèi)容