func findWhetherExistsPath(n int, graph [][]int, start int, target int) bool {
g := make([][]int, n)
vis := make([]bool, n)
for _, e := range graph {
g[e[0]] = append(g[e[0]], e[1])
}
q := []int{start}
vis[start] = true
for len(q) > 0 {
i := q[0]
q = q[1:]
if i == target {
return true
}
for _, j := range g[i] {
if !vis[j] {
vis[j] = true
q = append(q, j)
}
}
}
return false
}