可解释AI在慢性病干预中的应用:让模型决策有据可循
2026/9/7 10:08:06
(i,j):grid[i][j] == '1'),说明找到一个新岛屿 → 计数ans += 1(i,j)满足以下任一条件,直接返回i < 0 或 i >= m 或 j < 0 或 j >= n);grid[i][j] != '1',可能是海洋 '0' 或已访问的陆地 '2')。grid[i][j]改为非 '1' 的值(如 '2'),避免重复递归、无限循环。ans即为岛屿总数。class Solution: def numIslands(self, grid: List[List[str]]) -> int: m,n = len(grid),len(grid[0]) def dfs(i,j): if i<0 or i>=m or j<0 or j>=n or grid[i][j]!='1': return if grid[i][j] == '1': #出界,或者不是 '1',就不再往下递归 grid[i][j] = '2' # 标记!避免来回横跳无限递归 dfs(i,j+1) dfs(i,j-1) dfs(i-1,j) dfs(i+1,j) ans = 0 for i,row in enumerate(grid): for j,col in enumerate(row): if col == '1': # 找到了一个新的岛 dfs(i,j) # 把这个岛标记,这样后面遍历到的 '1' 一定是新的岛 ans += 1 return ans