遞迴演算法解決螺旋矩陣問題

2021-09-27 04:05:43 字數 748 閱讀 3194

螺旋矩陣遞迴實現
/*tax:螺旋陣列

(x,x):(0,0)初始的行與列,x用於行列標註

st:0開始的初始值

n:未賦值矩陣的長度和寬度*/

void luoxuan(int **tax,int x,int st,int n)

else if(n==1)

//上部賦值

for(i=x; ix; i--)

//左部賦值

for(i=x+n-1; i>x; i--)

//遞迴

luoxuan(tax,x+1,st,n-2);

}

這裡的二維陣列咱們使用了指標,那麼咱們在主函式得申請空間,怎麼申請看接下來的操作:

int main()

else if(n==1)

//上部

for(i=x; ix; i--)

//左部

for(i=x+n-1; i>x; i--)

//遞迴

luoxuan(tax,x+1,st,n-2);

}int main()

{ int **tax;

int x=0,st=1,n,i,j;

cin>>n;

//申請空間

tax=new int *[n];

for(i=0;i總體來說這題演算法還是挺簡單的,但對於我這種菜雞來說就是很難想到。

這堂課就此結束了!!!

螺旋矩陣演算法

記得這是大二時,我的老師給我出的題,回去琢磨了半天,感覺不是很難。今天整理電腦裡的資料時發現了,拿出來看看,上網搜搜發現面試題裡挺多的,但網上的看起來比我的複雜得多 也許是個人感覺,我比較另類 所以拿出來分享。時間複雜度基本上就是o n 2 了。這個螺旋矩陣有幾類,我當時拿到的題是從中間往外順時針旋...

螺旋矩陣演算法

螺旋輸出1 25 public class sequence if row n col n row 1 col 1 array row n col 0 for int i 0 i n i system.out.println 矩陣轉換 public class testarray 建立乙個4行3列的...

列印螺旋矩陣(遞迴解法)

求職過程遇到的一道面試題,當時沒有做出來,回來想出幾種方法,其中大多是 蠻力 解法,不得不陷入一堆的i j 迴圈之中。最後想出一種遞迴解法,現記錄如下。題目如下 輸入 n,列印 n n 螺旋矩陣 比如 n 3 列印 1 2 3 8 9 4 7 6 5 n 4 列印 1 2 3 4 12 13 14 ...