輸出螺旋矩陣 列印蚊香形狀

2022-05-03 11:42:33 字數 1401 閱讀 2395

一、輸出螺旋矩陣

按順時針方向,右、下、左、上逐個輸出,往右方向的輸出比上、左兩個方向的輸出多乙個,往下方向的輸出比上、左兩個方向少乙個

}第二種方法1、首先設定上下左右邊界

2、其次向右移動到最右,此時第一行因為已經使用過了,可以將其從圖中刪去,體現在**中就是重新定義上邊界

3、判斷若重新定義後,上下邊界交錯,表明螺旋矩陣遍歷結束,跳出迴圈,返回答案

4、若上下邊界不交錯,則遍歷還未結束,接著向下向左向上移動,操作過程與第一,二步同理

5、不斷迴圈以上步驟,直到某兩條邊界交錯,跳出迴圈,返回答案

class

solution

return

ans;}};

第三種方法dfs搜尋,用乙個標記f控制搜尋方向,按照右、下、左、上的順序搜尋,用vis陣列標記已經遍歷過的位置,並用已經遍歷過的點作為邊界。最後以搜尋的點的個數cnt作為終止條件

#include#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

int a[1005][105], vis[1005][105

];int n, cnt = 0

;int dir[4][2] = ,,, };

bool check(int x, int

y) void dfs(int x, int y,int

f)

else

}int

main()

cout

<

}system(

"pause");

return0;

}

二、列印蚊香

N N矩陣螺旋列印輸出

例 1 2 3 4 5 6 7 8 9 輸出為如下結果 1 4 7 8 9 6 3 2 5 private void button1 click object sender,eventargs e console.writeline console.writeline this.printarray...

列印螺旋矩陣

首先,看一下螺旋矩陣的樣子.如下圖 求螺旋陣列的 如下 dev cpp平台 include using namespace std int alloc mat int round 動態二維陣列的分配 void del mat int mat,int round 刪除動態分配的二維陣列 void pr...

列印螺旋矩陣

螺旋矩陣是乙個nxn的方陣,其中元素為自然數,但像螺旋方向一樣遞增。舉例如下 若n 3,螺旋矩陣為 1 2 3 8 9 4 7 6 5若n 4,螺旋矩陣為 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7若n 5,螺旋矩陣是 1 2 3 4 5 16 17 18 19 6...