Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-08-08 22:38:47
885. Spiral Matrix III
给你一个2-D矩阵的列数(rows)、行数(cols)
还要起点[rstart,cstart]
请你依照顺时针的顺序
把经过的点列出来
在过程中,可能会超过矩阵的范围
思路:
cnt为总共要经过的格数
就依照右左下上的顺序一开始要走的步数矩阵[1,1,2,2]
每走过一个循环,就把步数矩阵里面的值都加2
就这样边走边纪录,走到cnt==0就可以得到答案了
golang code :
func spiralMatrixIII(rows int, cols int, rStart int, cStart int) [][]int {
Ans := make([][]int, 0)
moveStep := []int{1, 1, 2, 2}
cnt := rows*cols - 1
Ans = append(Ans, []int{rStart, cStart})
chk := func(r, c int) bool {
return r > -1 && r < rows && c > -1 && c < cols
}
for cnt > 0 {
for i := 0; i < moveStep[0]; i++ {
cStart++
if chk(rStart, cStart) {
Ans = append(Ans, []int{rStart, cStart})
cnt

Links booklink

Contact Us: admin [ a t ] ucptt.com