一、查找数组中跳变的索引的函数
- 该函数接收一个包含整数的数组,并返回数组中第一个由负值变为非负值的索引。
如果数组中的所有值都是负数或者没有负值变为非负值的情况,则返回-1。
二、方法
- 遍历数组,记录每一个非负数值的索引,当遇到一个负数值后再变为非负值时,返回这个索引。
三、程序
def find_first_non_negative(arr):
first_non_negative = -1
for index, value in enumerate(arr):
if value >= 0:
first_non_negative = index
elif first_non_negative >= 0:
return first_non_negative
return first_non_negative
# 示例使用
arr = [-3, -1, -2, -5, 0, 5, 3]
print(find_first_non_negative(arr)) # 输出应为 4
- 在这个例子中,enumerate 函数用于同时获取索引和值,arr 是输入的数组。
函数遍历数组,当遇到第一个非负值时记录下索引,如果之后又出现了一个负值后又变成非负值的情况,则返回之前记录的索引。
如果数组中的所有值都是负数,则返回初始设定的 -1。