296. Best Meeting Point

Posted 我的名字叫周周

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了296. Best Meeting Point相关的知识,希望对你有一定的参考价值。

    /*
     * 296. Best Meeting Point
     * 2016-7-2 by Mingyang
     * 这道题不难,但是有个概念就是必须清楚为什么曼哈顿距离最小是在中点的位置
     * 很没有意思的一个题目,不详谈
     */
    public int minTotalDistance(int[][] grid) {
        List<Integer> ipos = new ArrayList<Integer>();
        List<Integer> jpos = new ArrayList<Integer>();
        // 统计出有哪些横纵坐标
        for(int i = 0; i < grid.length; i++){
            for(int j = 0; j < grid[0].length; j++){
                if(grid[i][j] == 1){
                    ipos.add(i);
                    jpos.add(j);
                }
            }
        }
        int sum = 0;
        Collections.sort(ipos);
        for(Integer pos : ipos){
            sum += Math.abs(pos - ipos.get(ipos.size() / 2));
        }
        // 计算横坐标到横坐标中点的距离,这里需要排序,因为统计不是按照j的顺序
        Collections.sort(jpos);
        for(Integer pos : jpos){
            sum += Math.abs(pos - jpos.get(jpos.size() / 2));
        }
        return sum;
    }

 

以上是关于296. Best Meeting Point的主要内容,如果未能解决你的问题,请参考以下文章

296. Best Meeting Point

LeetCode 296. Best Meeting Point(最佳见面点)

[Locked] Best Meeting Point

[LeetCode] Best Meeting Point 最佳开会地点

Hdu 4311-Meeting point-1 曼哈顿距离,前缀和

Hdu 4312-Meeting point-2 切比雪夫距离,曼哈顿距离,前缀和