部门年会组织了一个有奖活动:有一个包含陷阱的M行N列网格地图,需要从网格的左上角移动到右下角才算完成任务,可以领取奖励。活动规则为每次只能向上/向下/向左/向右移动一格。如果要移到无陷阱的位置,则体力无消耗;如果要移到有陷阱的位置,则需要消耗1个体力值。
问小华要领取奖励需要消耗的最少体力值。
该题是一个典型的最短路径问题。我们给定了一个包含陷阱的网格地图,任务是从网格的左上角 (0, 0)
出发,找到一条路径到达右下角 (M-1, N-1)
,要求在路径上经过陷阱时消耗体力。每次移动只能是上下左右四个方向,移动到有陷阱的格子消耗1个体力值,移动到没有陷阱的格子不消耗体力。目标是找到最少体力消耗的路径。
这个问题可以通过 广度优先搜索(BFS) 来解决。我们使用 BFS 来进行层级遍历,从起点 (0, 0)
开始,逐步探索每个可到达的点,并更新从起点到每个点的最小体力消耗。