環形矩陣建立

2021-10-23 19:21:53 字數 1415 閱讀 3007

輸入:乙個整數n,1<=n<=20;

輸出:從右上角開始的蝸牛環形矩陣;

例如:輸入:

n=2輸出:

4 13 2

思路:從右上角起始位置開始按照下左上右的遞增賦值,改變起始位置,直到當前起始位置的左下角已經被賦值,跳出迴圈

初始化注意:n=1的情況

/*********************************

** author :jun

** create date:2020.8.25

** modifier :

** modify time:

** name :test

** description:test code

**********************************/

#include

#include

#include

#include

using

namespace std;

class

solution};

//返回結果初始化

vector<

int>

tmp(n,0)

;for

(int m =

0; m < n;

++m)

int cnt =1;

//按照下左上右的順序賦值,cnt--僅僅為了邏輯上更容易理解,也可以在迴圈內部對應-1

while(1

)//left

cnt--

;for

(int i = start_cols; i >= n-

1-start_cols;

--i)

//up

cnt--

;for

(int i = start_cols; i >= start_rows;

--i)

//right

cnt--

;for

(int i = n -

1- start_cols; i < start_cols;

++i)

//起始點左下位置是否已經賦值

if(result[start_rows+1]

[start_cols-1]

!=0)break

;//開始下一次迴圈

start_rows++

; start_cols--;}

return result;}}

;int

main()

cout << endl;

}return0;

}

蛇形環形矩陣

蛇形環形矩陣是一種從外到裡或者從裡到外環繞的矩陣,就像蛇一樣一圈圈盤旋,由此成為蛇形環繞矩陣,如下圖就是簡單的從外向裡包圍蛇形環繞矩陣。列印這種矩陣可以採用分治思想,即將問題分解成子問題求解,每次列印最外一圈,依次向里,直到結束為止。比如上述圖中,最外一層依次從上往下 1 4 從左往右 5 8 從下...

環形緩衝buf的建立

用於網路接受到位元組時,放入緩衝buf,然後取出解析。使用時需要上鎖 typedef struct tagringbuf tringbuf 建立環形buf handle ringbufcreate u32 dwbufsize memset ptringbuf,0,sizeof tringbuf pt...

矩陣的建立

摘要 矩陣的建立有許多建立方法。最常見的方法是用cvcreatemat 它是由多個原函式組成cvcreatematheader 函式建立cvmat結構,不為資料分配記憶體,cvcreatedata 函式只負責記憶體的分配。還可以用函式cvclonemat,它依據乙個現有的矩陣建立乙個新的矩陣。當這個...