已解决
算法 旋转矩阵
来自网友在路上 165865提问 提问时间:2023-09-24 08:23:48阅读次数: 65
最佳答案 问答题库658位专家为你答疑解惑
牛客网: BM98
题目: 螺旋式返回矩阵所有元素
思路: 初始化边界指针left = 0, right = n-1, up = 0, down = n-1, 遍历条件为up<=down&&left<=right,每次遍历完一行、列时改变up/down/left/right后需要对停止条件进行判断提前结束外层循环。
代码:
// gopackage main
// import "fmt"/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param matrix int整型二维数组 * @return int整型一维数组
*/
func spiralOrder( matrix [][]int ) []int {// write code hereif len(matrix) == 0 || len(matrix[0]) == 0 {return []int{}}up := 0down := len(matrix) - 1left := 0right := len(matrix[0]) - 1res := []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
}
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"算法 旋转矩阵":http://eshow365.cn/6-12651-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: MySQL学习笔记7
- 下一篇: MyBatis基础之SqlSession