🗒️LCS 03. 主题空间
2025-3-5
| 2025-3-5
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Mar 5, 2025 10:17 AM
「以扣会友」线下活动所在场地由若干主题空间与走廊组成,场地的地图记作由一维字符串型数组 grid,字符串中仅包含 "0"~"5" 这 6 个字符。地图上每一个字符代表面积为 1 的区域,其中 "0" 表示走廊,其他字符表示主题空间。相同且连续(连续指上、下、左、右四个方向连接)的字符组成同一个主题空间。
假如整个 grid 区域的外侧均为走廊。请问,不与走廊直接相邻的主题空间的最大面积是多少?如果不存在这样的空间请返回 0

DFS

这道题困扰了我半天,怎么都想不明白为什么堆栈溢出了。
我是一点点排查的。在 DFS 中,堆栈溢出一般就是无限循环了。我在想,我都标记为访问过了,没有可能会无限递归啊。然后,接着输出,找问题。
💡
还真发现了问题的所在。原因是我对 char 类型的变量赋值为 -1,来表示已经访问过了。但是在 c++ 中的字符,-1会被记录为 1,相当于没有标记,就会无限循环。
以后注意,一定要注意。数据是 int 类型时,写 -1 写习惯了,才导致这么低级的错了。
注意:以后在字符或者字符串中,标记使用 ‘#’,‘$’之类的符号字符,避免使用数字字符出错。
下面是正确代码。
这种写法也是可以的

📎 参考

  • Important
  • 【题单】网格图(DFS/BFS/综合应用)
  • 2658. 网格图中鱼的最大数目面试题 16.19. 水域大小
    Loading...