題目就是Group of Friends.給一個(gè)matrix:
如果 matrix[i][j]=1說(shuō)明 i knows j,然后問(wèn)有多少個(gè)group. 比如:. 涓€浜?-涓夊垎-鍦幫紝鐙鍙戝竷
{1,1,0,0}
{1,1,1,0}
{0,1,1,0}
{0,0,0,1}
輸出就是2
follow up:要求分別輸出每個(gè)group
BFS解決的這道題。
http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=202672&highlight=snapchat
My code:
public int numOfGroup(char[][] board) {
if (board == null || board.length == 0 || board[0].length == 0) {
return 0;
}
int num = 0;
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board[0].length; j++) {
if (board[i][j] == '1') {
dfs(i, j, board);
num++;
}
}
}
return num;
}
private void dfs(int i, int j, char[][] board) {
board[i][j] = '0';
for (int k = i + 1; k < board.length; k++) {
if (board[k][j] == '1') {
dfs(k, j, board);
}
}
for (int k = j + 1; k < board[0].length; k++) {
if (board[i][k] == '1') {
dfs(i, k, board);
}
}
}
follow up, 要求輸出每個(gè)group。
那我就 最上層 for - loop 里面,每次加入一個(gè)List進(jìn)去。
Anyway, Good luck, Richardo! -- 09/28/2016