classSolution { publicint[][] allCellsDistOrder(int R, int C, int r0, int c0) { int[][] ans = newint[R * C][2]; initialize(ans, R, C); Arrays.sort(ans, Comparator.comparingInt(o -> distance(r0, c0, o[0], o[1]))); return ans; }
privateintdistance(int r0, int c0, int r, int c) { return abs(r0 - r) + abs(c0 - c); }
privateintabs(int x) { return x >= 0 ? x : -x; }
privatevoidinitialize(int[][] arr, int R, int C) { for (inti=0; i < R; i++) { for (intj=0; j < C; j++) { arr[i * C + j][0] = i; arr[i * C + j][1] = j; } } } }