题目描述:
解题思路:
方法一:直接排序,根据曼哈顿距离,lambda表达式写法很简单。
方法二:BFS(待补充)
方法三:桶排序(待补充)
参考代码:
public int[][] allCellsDistOrder(int R, int C, int r0, int c0) {
int[][] re = new int[R * C][2];
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++) {
int t = i*C+j;
re[t][0] = i;
re[t][1] = j;
}
}
Arrays.sort(re, (arr1, arr2) ->
dist(arr1[0], arr1[1], r0, c0)-dist(arr2[0], arr2[1], r0, c0));
return re;
}