算法 旋转矩阵

牛客网: BM98

题目: 螺旋式返回矩阵所有元素

思路: 初始化边界指针left = 0, right = n-1, up = 0, down = n-1, 遍历条件为up<=down&&left<=right,每次遍历完一行、列时改变up/down/left/right后需要对停止条件进行判断提前结束外层循环。

代码:

// go

package main
// import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param matrix int整型二维数组 
 * @return int整型一维数组
*/
func spiralOrder( matrix [][]int ) []int {
    // write code here
    if len(matrix) == 0 || len(matrix[0]) == 0 {
        return []int{}
    }
    up := 0
    down := len(matrix) - 1
    left := 0
    right := len(matrix[0]) - 1
    res := []int{}
    for up <= down && left <= right {
        for i := left; i <= right; i++ {
            res = append(res, matrix[up][i])
        }
        up++
        if up > down {
            break
        }
        for i := up; i <= down; i++ {
            res = append(res, matrix[i][right])
        }
        right--
        if left > right {
            break
        }
        for i := right; i >= left; i-- {
            res = append(res, matrix[down][i])
        }
        down--
        if up > down {
            break
        }
        for i := down; i >= up; i-- {
            res = append(res, matrix[i][left])
        }
        left++
        if left > right {
            break
        }
    }
    return res
}

文章来源地址https://uudwc.com/A/Lap4E

原文地址:https://blog.csdn.net/Neil_001/article/details/133219971

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月24日 01:33
IDEA设置忽略node_modules
下一篇 2023年09月24日 01:39