题目描述:
给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数,第一步必须从第一元素开始,1<=步长<len/2, 第二步开始以所在成员的数字走相应的步数,如果目标不可达返回-1,只输出最少的步骤数量。
说明:这是3月份应聘华为(北京外企德科)的笔试题,现在想着学着把自己的一些经历慢慢记录下来,也锻炼自己的整理与复盘能力。代码分享如下:
def minstep (input):
input1 = input
a_input = len ( input1 )
min_step = []
for k in range(1,round(a_input/2)):
time = 1
k1 = k
while ( input[k1] + k1 ) <= (a_input - 1) :
time += 1
k1 = input[k1] + k1
if k1 == a_input - 1:
min_step.append (time )
if min_step:
d = min(min_step)
return d
else:
return -1
if __name__ == "__main__":
a = list(map(int,input().split()))
b = minstep(a)
print (b)