所以我的问题是:
已排序的整数数组旋转了未知次数。
给出这样一个数组,以比线性时间快的速度找到数组中元素的索引。如果数组中不存在该元素,则返回null。
例如,给定数组[13、18、25、2、8、10]和元素8,返回4(数组中8的索引)。
您可以假定数组中的所有整数都是唯一的。
我已经尝试过的代码:
def find_index(x, a):
x = input("Enter number wish to be found: ")
a = [13, 18, 25, 2, 8, 10]
for element in a:
if x not in a:
return None
else:
print(a.index(x))
print(find_index())
我收到find_index() missing 2 required positional arguments: 'x' and 'a'
的错误
我期望能够使用户输入一个数字,并返回索引位置或None
的值。我碰到一堵墙,不知道在哪里继续。有什么想法吗?
答案 0 :(得分:2)
您提供的代码不会产生上述错误。
该函数为什么要使用2个参数,然后立即覆盖它们?
input
返回一个字符串。您必须将x
转换为整数。
无论如何,循环没有任何意义。您所有功能所需要做的就是包装.index
:
def find_index():
try:
x = int(input("Enter number wish to be found: "))
except ValueError:
return 'You have to input an integer'
a = [13, 18, 25, 2, 8, 10]
try:
return a.index(x)
except ValueError:
return None