1. 程式人生 > >1068. 萬綠叢中一點紅(20)-PAT乙級真題

1068. 萬綠叢中一點紅(20)-PAT乙級真題

通過這個我們可以學到
1、對於怎麼判斷一個m*n的矩陣中每一個元素有沒有八個方向上的相鄰元素
int dir[8][2] = {
{-1, -1}, //橫座標-1 縱座標-1 ,這是元素左下角的元素
{-1, 0}, //橫座標-1 縱座標不變,這是元素正左邊的元素
{-1, 1}, //左上
{0, 1}, //正上
{1, 1}, //右上
{1, 0}, //正右
{1, -1}, //右下
{0, -1}}; //正下方
bool judge(int i, int j) {
for (int k = 0; k < 8; k++) {……//在這八個方向上
int tx = i + dir[k][0]; ……//改變橫座標
int ty = j + dir[k][1];……//改變縱座標
if (tx >= 0 && ……//如果不在最左邊
tx < n && …… //如果不在最右邊
ty >= 0 && ……//如果不在最上邊
ty < m && ……//如果不在最下邊
abs(v[i][j] - v[tx][ty] )<= tol &&……//如果差值小於閾值為假
)
return false;
}
return true;
}

2、
vector<vector> v; 定義一個二維動態陣列,這時不知道行列無法初始化
cin>>m>>n;輸入行列個數
v.resize(n, vector(m)); 重新指定陣列的長度為n行m列;實際上是v有n個元素(行),每個元素又有m個元素(列)
3、