今天學到了一種非常好的方法,雖然自己有想到按照右下左上四個方向去螺旋進行賦值,但是對於leetcode上大佬所講解的用四周邊界作為條件可以有效解決迴圈時候的邊界問題,同時,用while迴圈判斷的好處在於最後乙個元素落到的位置和row=column的時候元素位置有很好的作用,減少bug的出現。(不得不感嘆,真的好強嗷= =)
上面的行滿了,所以頂要加一向下走
for(int i=up;i<=down;i++) //
從右到下依次賦值
right--;
for(int i=right;i>=left;i--) //
從右到左
down--;
for(int i=down;i>=up;i--) //
從下到上
left++;
}return
m; }
};view code
leetcode59 螺旋矩陣2
給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 同leetcode54.螺旋矩陣,採用一圈一圈填充的方式來生成正方形序列。class solution vectorint res n,vect...
59 螺旋矩陣 II
給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 class solution for int i 0 i 2 num 1 i 如果不是第乙個圈,個數需要減少1 if x 1 else r1 n...
59 螺旋矩陣 II
一輪 四種遍歷 後,將座標更新到新一輪的初始位置 x 1 y 1 初始步長 step n 1,之後更新步長 step 2 n為奇數時,最後四種遍歷完之後,再新增處於最中間的數 class solution def generatematrix self,n int list list int res...