c語言的層次遍歷總結篇被圍繞的區域1、先定義乙個佇列的結構體
typedef
struct
node;
int numislands(char** grid, int gridsize, int*gridcolsize)
3、根據輸入引數、返回值的需要定義
int landsnums = 0
;
4、模擬佇列,佇列初始化
node* queue = (node*)malloc(sizeof(node)*gridsize*gridcolsize[0
]); memset(queue,
0, sizeof(node)*gridsize*gridcolsize[0
]);
5、儲存臨時變數作為當前值
node cur;
6、根據當前選擇列表進行層次遍歷演算法
for(int i = 0; i < gridsize; i++)
if (cur.x + 1
< gridsize && grid[cur.x + 1][cur.y] == '1'
)
if (cur.y - 1 >= 0 && grid[cur.x][cur.y - 1] == '1'
)
if (cur.y + 1
< gridcolsize[0] && grid[cur.x][cur.y + 1] == '1'
) }
9、當前題目的需求進行處理
landsnums++;}}
}free
(queue);
return
landsnums;
}
130130. 被圍繞的區域. 被圍繞的區域
}//遍歷矩陣,把o全部改寫成x,a全部改寫成o
for (int i = 0; i < boardsize; i++)
else
if (board[i][j] == 'm'
) }
}return
;}
並查集演算法#include
#include
#define vertices 6
void initialise(int parent, int
rank)
}int find_root(int x, int
parent)
return
x_root;
}int union_vertices(int x, int y, int parent, int
rank)
else
else
if(rank[y_root] >rank[x_root])
else
return1;
}}int
main();
int rank[vertices] = ;
int edges[5][2] =, , ,
, };
initialise(parent,rank);
inti;
for(i = 0; i < 5; i++)
}printf(
"no cycles found.\n");
return0;
}
python os模組總結
在python的標準庫os模組中包含普遍的作業系統功能。程式能夠與平台,就靠這個模組了。下面是os模組常用的方法.1.os.sep 可以取代作業系統特定的路徑分割符 2.os.name 字串指示你正在使用的平台。比如對於windows,它是 nt 而對於linux unix使用者,它是 posix ...
os path模組總結
os.path都是和路徑指定的檔案,目錄,和路徑字串有關係的函式 os.path.isdir name 判斷name 是不是乙個目錄,name 不是目錄就返回 false os.path.isfile name 判斷name 是不是乙個檔案,不存在 name 也返回false os.path.exi...
數學模組總結
最近學的數論知識 線性篩法,高斯消元,導數積分,擴歐,組合數學。用數論優化的 dp斜率優化。先說線性篩,分為篩素數,尤拉函式,逆元,莫比烏斯 待學 篩素數 沒啥好說的 篩逆元 先求n i 表示a1 a2 ai,再求p n 表示n n 的逆元,將p i a i 1 即可得到p i 1 篩尤拉函式 根據...