给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。
另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。
返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2) 之间的距离是曼哈顿距离,|r1 - r2| + |c1 - c2|。(你可以按任何满足此条件的顺序返回答案。)
解题思路以及知识点:
遍历计算所有位置的曼哈顿距离,把计算结果以[结果,坐标集合]为键值对存储,最后按序输出。【maths.abs计算绝对值】
/**
* @param {number} R
* @param {number} C
* @param {number} r0
* @param {number} c0
* @return {number[][]}
*/
var allCellsDistOrder = function(R, C, r0, c0) {
let result={},
x,y;
for(let i=0;i<R;i++){
x=Math.abs(i-r0)
for(let j=0;j<C;j++){
y=lang=Math.abs(j-c0)+x
if(result[y]){
result[y].push([i,j])
}else{
result[y]=new Array([i,j])
}
}
}
let index=0;
let temp=[]
while(result[index]){
temp.push(...result[index])
index++
}
return temp
};
网友评论