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