number-of-boomerangs

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

 

package com.company;

import java.util.*;

class Solution {
    public int numberOfBoomerangs(int[][] points) {
        int ret = 0;

        for (int i=0; i<points.length; i++) {
            Map<Long, Integer> dMap = new HashMap<>();
            long dist;
            int count;

            for (int j=0; j<points.length; j++) {
                if (i == j) {
                    continue;
                }
                dist = (points[i][0]-points[j][0])*(points[i][0]-points[j][0]) +
                        (points[i][1]-points[j][1])*(points[i][1]-points[j][1]);

                count = 0;
                if (dMap.containsKey(dist)) {
                    count = dMap.get(dist);
                }
                count++;
                dMap.put(dist, count);
            }
            Iterator<Map.Entry<Long, Integer>> iter = dMap.entrySet().iterator();
            while (iter.hasNext()) {
                int val = iter.next().getValue();
                ret += val * (val-1);
            }
        }
        return ret;
    }
}

public class Main {

    public static void main(String[] args) throws InterruptedException {

        System.out.println("Hello!");
        Solution solution = new Solution();

        // Your Codec object will be instantiated and called as such:
        int[][] points = {{0,0},{1,0},{2,0}};
        int ret = solution.numberOfBoomerangs(points);
        System.out.printf("ret:%d\n", ret);

        System.out.println();

    }

}

 

posted @ 2016-11-07 17:19  blcblc  阅读(522)  评论(0编辑  收藏  举报