graph bfs dfs

steyu·2022년 11월 26일
0

이 세 가지 조건을 만족해야 계속 탐색할 수 있다.
when fulfill these 3 conditions, you can keep searching deeper.

isValid(i,j)
!isVisited && 
matrix[i][j] === land && 

bfs

  • space 복잡도: 대각선 (두변이 m,n인 삼각형의 가장 긴 변)
  • queue를 사용해서 space 복잡도가 dfs보다 좋다
  • 처음에 queue.push하고 while(queue.length) 할 때동안 그 안에서 4방향을 체크하며 맨 위의 세가지 조건을 만족하는 것들을 queue.push한다.
    • 주의할 점은 queue.push할때 isVisited를 true로 바꿔야한다. (dfs처럼 나중에 바꾸면 해당 노드의 isVisited는 여전히 true이므로 해당 노드가 또 queue에 들어갈 수 있기때문이다.)

dfs

  • space: m*n
  • use stack. 스택오버플로우가 날 수 있다.

0개의 댓글

관련 채용 정보