You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用循环内单次函数调用替代矩阵上下左右遍历的四次调用?

解决方案

你可以用方向偏移量数组来实现循环调用,这是网格遍历场景里最常用的写法,比你尝试的取模方式更直观且不易出错:

首先定义包含上下左右四个方向偏移的列表,每个元素是一个元组,分别对应行和列的变化量:

directions = [(-1, 0), (1, 0), (0, -1), (0, 1)]

然后循环这个列表,每次取出偏移量计算新的坐标,再调用函数:

for dr, dc in directions:
    exploreIsland(grid, row + dr, col + dc, m, n)

为什么你之前的方法没成功?

你用range(1,4)只能生成3个数值,没办法覆盖4个方向;而且通过取模生成正负符号的方式,很难同时对应行和列的不同偏移组合(比如上下是行变化、左右是列变化),逻辑会绕,不如直接用偏移量数组清晰。

这种写法的好处还在于扩展性强——如果以后需要遍历斜向(比如左上、右下等),只需要在directions里添加对应的元组(比如(-1,-1)、(1,1))就行,不需要重复写多遍函数调用。

内容的提问来源于stack exchange,提问作者Figurinha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:42:04