輸入:乙個整數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,它依據乙個現有的矩陣建立乙個新的矩陣。當這個...