码迷,mamicode.com
首页 > 其他好文 > 详细

296. Best Meeting Point

时间:2016-07-03 08:09:52      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

    /*
     * 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

标签:

原文地址:http://www.cnblogs.com/zmyvszk/p/5636530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!