美文网首页
1030. 距离顺序排列矩阵单元格

1030. 距离顺序排列矩阵单元格

作者: 彼小星星空下看星星 | 来源:发表于2020-11-17 22:36 被阅读0次

    给出 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
    };
    

    相关文章

      网友评论

          本文标题:1030. 距离顺序排列矩阵单元格

          本文链接:https://www.haomeiwen.com/subject/scafiktx.html