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

遍历列表时更新迭代器,直至找到值"0"并返回其索引

解决方案:跳跃遍历找0的索引

这个逻辑和Sidewinder算法无关,它就是一个固定规则的跳跃式列表遍历——核心是每次用当前索引对应的值更新迭代位置,直到找到值为0的索引。

实现思路

  • 从起始索引(默认0)开始遍历
  • 每一步用当前位置的数值作为下一次的索引
  • 找到值为0的位置时返回其索引
  • 可选添加循环检测,避免因列表无0或出现循环跳转导致死循环

代码实现(Python)

def find_zero_index(arr):
    current_idx = 0
    visited = set()
    while current_idx < len(arr):
        if arr[current_idx] == 0:
            return current_idx
        # 检测循环,防止无限遍历
        if current_idx in visited:
            raise ValueError("列表中无0,或出现循环跳转")
        visited.add(current_idx)
        # 更新索引为当前位置的数值
        current_idx = arr[current_idx]
    raise ValueError("列表中不存在0")

简化版(确定无循环且必有0时使用)

如果能保证列表里一定有0,且不会出现跳转循环(比如索引值不会指向已访问过的位置),可以去掉循环检测逻辑:

def find_zero_index_simple(arr):
    current_idx = 0
    while arr[current_idx] != 0:
        current_idx = arr[current_idx]
    return current_idx

示例验证

对应你示意图的跳转流程:假设列表为[2, x, 1, 1, 4, x, x, x, 2, x, 0],调用函数后会依次跳转0→2→3→4→8→10,最终返回10,完全符合你的预期。

补充说明

Sidewinder算法是用于生成网格迷宫的随机路径算法,核心逻辑是随机选择横向/纵向扩展路径,和这种固定规则的跳跃遍历没有关联,不用混淆两者。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:20:43