当前位置:   article > 正文

leetcode | go | 第419题 | 甲板上的战舰

leetcode | go | 第419题 | 甲板上的战舰

甲板上的战舰

go

解决思路

  1. dir 为可移动的方向,m、n 为数组行数和列数
  2. dfs 参数 i、j 当前位置(只会遍历值为 X 的位置)
  3. 将该位置的值该为 '.',遍历可能的方向,在不越界且新位置的值为 'X' 的情况下,dfs 新位置(将和当前位置 X 连通的所有 X 都消除)
  4. ans 为 0,遍历整个数组,如果值为 X,ans++,遍历该位置
  5. return ans
  6. 空间不太好
  7. 题解思路:(1)遍历扫描(2)枚举起点

相关问题

  1. 这道题和第 200 题比较类似
  2. 不要把名字搞混了
  1. var dirs = [][2]int{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}
  2. func countBattleships(board [][]byte) int {
  3. m,n:=len(board),len(board[0])
  4. var dfs func(i,j int)
  5. dfs=func(i,j int){
  6. board[i][j]='.'
  7. for _, d := range dirs {
  8. x,y:=i+d[0],j+d[1]
  9. if x>=0 && x<m && y>=0 && y<n && board[x][y]=='X' {
  10. dfs(x,y)
  11. }
  12. }
  13. }
  14. ans:=0
  15. for i,f:=range board {
  16. for j,_:=range f {
  17. if board[i][j]=='X' {
  18. ans++
  19. dfs(i,j)
  20. }
  21. }
  22. }
  23. return ans
  24. }

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/718356
推荐阅读
相关标签
  

闽ICP备14008679号