曼哈顿距离:化二维计算为一维
直接暴力搜索然后将绝对值相加
代码
class Solution {
public int buildTransferStation(int[][] area) {
int m=area.length;
int n=area[0].length;
List<Integer> a=new ArrayList<>();
List<Integer> b=new ArrayList<>();
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(area[i][j]==1){
a.add(i);
b.add(j);
}
}
}
Collections.sort(a);
Collections.sort(b);
int mid=a.size()/2;
int res=0;
for(int i=0;i<a.size();i++){
res+=Math.abs(a.get(i)-a.get(mid));
}
for(int i=0;i<b.size();i++){
res+=Math.abs(b.get(i)-b.get(mid));
}
return res;
}
}
(博主太菜了,当时没敢参加比赛,是赛后才看的题)