463.island-perimeter.go 451 B

1234567891011121314151617181920212223242526272829
  1. func islandPerimeter(grid [][]int) (cnt int) {
  2. m := len(grid)
  3. if m == 0 {
  4. return
  5. }
  6. n := len(grid[0])
  7. if n == 0 {
  8. return
  9. }
  10. for i := 0; i < m; i++ {
  11. for j := 0; j < n; j++ {
  12. if grid[i][j] == 1 {
  13. if i == 0 || grid[i-1][j] == 0 {
  14. cnt++
  15. }
  16. if i == m-1 || grid[i+1][j] == 0 {
  17. cnt++
  18. }
  19. if j == 0 || grid[i][j-1] == 0 {
  20. cnt++
  21. }
  22. if j == n-1 || grid[i][j+1] == 0 {
  23. cnt++
  24. }
  25. }
  26. }
  27. }
  28. return
  29. }