leetcode 59螺旋矩陣 II

2022-07-03 04:51:10 字數 2016 閱讀 7920

題目描述:

​ 給你乙個正整數n,生成乙個包含1n2所有元素,且元素按順時針順序螺旋排列的n x n正方形矩陣matrix

解題思路:

​ 這個題目首先看的話:我的想法是分層:這個都是先外層然後內層;然後一層層的排布下去。

按照分層的思路之後,進行編碼。

​ 主要碰到的問題:1、首先是按照分層,但是**比較隨意,導致多次迭代的時候,出現第一層正常,第二次修改。第二層修改又導致第一層問題。除錯時間有些長

2、基於分層之後,沒有立即分析第一層和第二層的位置關係

後面分析了第一層和第二層的位置關係之後,除錯就比較順暢

**:

#include /**

* return an array of arrays of size *returnsize.

* the sizes of the arrays are returned as *returncolumnsizes array.

* note: both returned array and *columnsizes array must be malloced, assume caller calls free().

*/int** generatematrix(int n, int* returnsize, int** returncolumnsizes)

int row = 0, column = 0;

int directions[4][2] = , , , }; // 右下左上

int directionindex = 0;

while (curnum <= maxnum)

row = row + directions[directionindex][0];

column = column + directions[directionindex][1];

}return matrix;

}void generatematrix1(int num)

; int index=0;

int index1=0;

int index2=1;

int quan_num=0;

if (num%2 ==0)

quan_num = num/2;

else

quan_num = (num-1)/2+1;

printf("num :%d;quan_num:%d\r\n",num,quan_num);

for (index=0;index

}for (index1=0;index1

index1--;

temp = index1+index;

printf("2 %d\r\n",temp);

for (index1=(0);index1

index1 = index1-1;

temp = temp;

temp1 = index+index1+1;

printf("3 %d\r\n",temp);

for (index1=(0);index1

index1 = index1-1;

temp = temp;

temp1 = temp1-index1-1;

printf("4 %d\r\n",temp);

for (index1=(0);index1

}if (num%4==0)

else if(num%4==1)

else if(num%4==2)

else if(num%4==3)

printf("\r\n");

for (index=0;index<=19;index++)

printf("\r\n"); }}

int main(void);

scanf("%d", &num);

generatematrix1(num);

return 0;

}

leetcode 59 螺旋矩陣

題目要求 按照順時針螺旋順序 構建乙個n n的螺旋矩陣 思路 參照之前的54題輸出螺旋矩陣的思路 將單圈拆開為四個部分。每個部分迴圈的長度是相同的。單圈迴圈完之後,起始座標向右下移乙個單位,單次迴圈長度減二。對於偶數階矩陣,正常結束。對於奇數階矩陣,因為迴圈長度會減到0,需要手動加入最後最中間的乙個...

LeetCode 59 螺旋矩陣II

給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 import numpy as np class solution def generatematrix self,n type n int r...

Leetcode 59 螺旋矩陣 II

給定乙個正整數 n,生成乙個包含 1 到 n 2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。輸入 3 輸出 1,2,3 8,9,4 7,6,5 複製 這個題目也比較簡單,和第54題類似 這個題目很簡單,上下左右分別用四個變數去標誌 上 top 下 bottom 左 left 右 right ...