1030.距离顺序排列矩阵单元格
链接:1030.距离顺序排列矩阵单元格
难度:Easy
标签:几何、数组、数学、矩阵、排序
简介:给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的顺序返回答案。)。
题解 1 - typescript
- 编辑时间:2020-11-17
- 执行用时:284ms
- 内存消耗:54MB
- 编程语言:typescript
- 解法介绍:遍历所有情况再进行排序。
function allCellsDistOrder(R: number, C: number, r0: number, c0: number): number[][] {
const cache: Record<string, number> = {};
const format = (r: number, c: number) => `${r}:${c}`;
const comp = (r: number, c: number) => {
const name = format(r, c);
if (cache[name]) return cache[name];
else {
const num = Math.abs(r - r0) + Math.abs(c - c0);
cache[name] = num;
return num;
}
};
const ans: number[][] = [];
for (let i = 0; i < R; i++) {
for (let j = 0; j < C; j++) {
ans.push([i, j]);
}
}
return ans.sort(([r1, c1], [r2, c2]) => comp(r1, c1) - comp(r2, c2));
}