python - 使用变量递归
问题描述
我目前正在学习递归,并且遇到了一个为某些问题提供解决方案的网站。其中一个问题是在数组中查找一个值并使用递归返回索引。提供的解决方案如下:
def searchRec2(A, k):
if A == []:
return -1
if A[0] == k:
return 0
recS = searchRec2(A[1:],k)
if recS == -1:
return -1
return recS + 1
我从这段代码中不明白的是,当代码使用变量recS
来运行搜索的每个递归调用时,一旦它在数组中找到相应的值,它就不会返回 0,而 0 将存储在recS
.
那么当它执行最后一个 return 语句时recS + 1
,它不只是在执行 0 + 1 即 1 吗?我不明白它是如何获得除 1 之外的值的。(代码工作它给出了我们在数组中寻找的元素的索引。)
解决方案
推荐阅读
- c++ - 使用派生类的方法由派生类实例化的基对象
- discord.js - 从 quick.db 排序数据
- assembly - 我需要让用户输入一个 16 位整数列表,然后将它们推入堆栈,然后将它们弹出以显示反向
- python - 有没有办法直接在 django 模板上检查一个值是否等于另一个值
- python - Time.sleep() 没有暂停正确的时刻?
- citrix - 重新安装后 Citrix Workspace 无法添加帐户
- pytorch - 几乎恒定的训练和验证准确性
- python - 通过套接字 python 发送和接收视频、音频数据
- python - 如何在不改变缺失值 (NaN) 的情况下将布尔运算符 (t/f) 更改为零和一?
- vue.js - TypeError:“issuerBaseURL”必须是有效的 uri