题解 | #螺旋矩阵#

螺旋矩阵

http://www.nowcoder.com/practice/7edf70f2d29c4b599693dc3aaeea1d31

 * 
 * @param matrix int整型二维数组 
 * @return int整型一维数组
 */
function spiralOrder( matrix ) {
    let res=[];
    if(matrix.length===0) return res;
    
    let l=0,r=matrix[0].length-1;
    let t=0,b=matrix.length-1;
    
    while(1){
        for(let i=l;i<=r;i++){
            res.push(matrix[t][i])
        }
        if(++t>b) break;//注意结束条件
        
        for(let i=t;i<=b;i++){
            res.push(matrix[i][r]);
        }
        if(--r<l) break;
        
        for(let i=r;i>=l;i--){
            res.push(matrix[b][i]);
        }
        if(--b<t) break;
        
        for(let i=b;i>=t;i--){
            res.push(matrix[i][l]);
        }
        if(++l>r) break;
    }
    return res;
    
}
module.exports = {
    spiralOrder : spiralOrder
};
全部评论

相关推荐

06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务