首页 > 其他 > 详细

螺旋矩阵

时间:2021-04-10 15:47:19      阅读:18      评论:0      收藏:0      [点我收藏+]

技术分享图片

package main

/**
 * 
 * @param matrix int整型二维数组 
 * @return int整型一维数组
*/
func spiralOrder( matrix [][]int ) []int {
    // write code here
    if matrix==nil || len(matrix)==0 || len(matrix[0])==0{
        return []int{}
    }
    
    var n = len(matrix[0])
    var m = len(matrix)
    var left = 0//左边界
    var right = n-1//右边界
    var up = 0  //上边界
    var down = m-1//下边界

    var total = n*m//总的元素个数
    var res = []int{}
    for total>0{
        for i:=left;i<=right&&total>0;i++{
            res = append(res, matrix[up][i])
            total--
        }
        up++
        for i:=up;i<=down&&total>0;i++{
            res = append(res, matrix[i][right])
            total--
        }
        right--
        for i:=right;i>=left&&total>0;i--{
            res = append(res, matrix[down][i])
            total--
        }
        down--
        for i:=down;i>=up&&total>0;i--{
            res = append(res, matrix[i][left])
            total--
        }
        left++
    }
    return res
}

螺旋矩阵

原文:https://www.cnblogs.com/pangqianjin/p/14639631.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!