当前位置:首页|资讯

LeetCode 2658. 网格图中鱼的最大数目

作者:您是打尖儿还是住店呢发布时间:2024-10-21

给你一个下标从 0 开始大小为 m x n 的二维整数数组 grid ,其中下标在 (r, c) 处的整数表示:

  • 如果 grid[r][c] = 0 ,那么它是一块 陆地 。

  • 如果 grid[r][c] > 0 ,那么它是一块 水域 ,且包含 grid[r][c] 条鱼。

一位渔夫可以从任意 水域 格子 (r, c) 出发,然后执行以下操作任意次:

  • 捕捞格子 (r, c) 处所有的鱼,或者

  • 移动到相邻的 水域 格子。

请你返回渔夫最优策略下, 最多 可以捕捞多少条鱼。如果没有水域格子,请你返回 0 。

格子 (r, c) 相邻 的格子为 (r, c + 1) ,(r, c - 1) ,(r + 1, c) 和 (r - 1, c) ,前提是相邻格子在网格图内。

 

示例 1:

输入:grid = [[0,2,1,0],[4,0,0,3],[1,0,0,4],[0,3,2,0]]

输出:7

解释:渔夫可以从格子 (1,3) 出发,捕捞 3 条鱼,然后移动到格子 (2,3) ,捕捞 4 条鱼。

示例 2:

输入:grid = [[1,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,1]]输出:1解释:渔夫可以从格子 (0,0) 或者 (3,3) ,捕捞 1 条鱼。

 

提示:

  • m == grid.length

  • n == grid[i].length

  • 1 <= m, n <= 10

  • 0 <= grid[i][j] <= 10

----可以用并查集处理,将同一个连通块的值累加即可,我这次用的dfs来做的,也是可以的,

至少现在dfs不至于无从下手了,稍微有思路了。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1