var dx []int = []int{1, 0, -1, 0} var dy []int = []int{0, -1, 0, 1} func pacificAtlantic(matrix [][]int) (res [][]int) { m, n := len(matrix), len(matrix[0]) ocean := make([][]int, m) for i := 0; i < m; i++ { ocean[i] = make([]int, n) } for i := 0; i < m; i++ { // b10: pacific, b01: atlantic ocean[i][0] |= 2 ocean[i][n-1] |= 1 } for i := 0; i < n; i++ { ocean[0][i] |= 2 ocean[m-1][i] |= 1 } dfs(matrix, 0, 0, ocean) for i := 0; i < m; i++ { for j := 0; j < m; j++ { if ocean[i][j] == 3 { res = append(res, []int{j, i}) } } } return } func dfs(matrix [][]int, x, y int, ocean [][]int) { }