【发布时间】:2022-06-15 03:40:17
【问题描述】:
正如标题所示,我正在尝试定义一个函数,该函数接受一个数字数组并返回数字停止增加并开始减少或停止减少并开始增加的索引。例如,如果数组是 [1, 2, 4, 6, 4, 3, 1],函数应该返回 3。下面的代码只返回左括号,我想知道为什么会这样。
def ArrayChallenge(arr):
for i in range(len(arr)):
if arr[i] > arr[i+1]:
return i
任何帮助将不胜感激。
【问题讨论】:
-
1) 是字面上返回左括号字符'['吗? 2)你本质上只是想找到最高值的索引吗?
-
正确,它实际上是返回左括号字符“[”。不完全是,第一部分是找到数字停止增加并开始减少的地方,所以我相信最大值会起作用。但是,如果输入的序列是 [10, 9, 8, 7, 9, 2, 1],那么函数应该返回 4,因为它在列表的索引 4 处停止递减。另外,如果序列中没有拐点,那么我想返回-1;即 [-5, -2, 0, 1, 7, 8] 应该只返回 -1。
-
"以下代码只返回左括号" 这是因为提供给函数 不是列表(我们在 Python 中不称它们为“数组” ),而是一个 字符串.
-
@KarlKnechtel 我尝试将 op 的代码作为字符串返回,它返回 0,而不是字符
-
对,
0是那个字符的索引。因此,无论如何,所描述的行为要么不可重现,要么至少不是所示代码的错误。当我尝试输入[1, 2, 4, 6, 4, 3, 1](列表)的代码时,结果是3(根据需要)。投票结束。
标签: python