Matrix Cells in Distance Order
EasyArrayMathGeometrySortingMatrix
Solution
export function allCellsDistOrder(
rows: number,
cols: number,
rCenter: number,
cCenter: number,
): number[][] {
const distance = ([row, col]: number[]) => {
return Math.abs(row - rCenter) + Math.abs(col - cCenter);
};
return new Array(rows * cols)
.fill(undefined)
.map((_, i) => [Math.floor(i / cols), i % cols])
.sort((a, b) => distance(a) - distance(b));
}