Question: codility Lesson13 FibFrog
My Answer:
def fibonacci(n):
fib = [1,1]
while fib[-1] < n:
fib.append(fib[-1] + fib[-2])
return fib[1:-1]
def solution(A):
jumps = fibonacci(len(A) + 2)
A.insert(0,1)
A.append(1)
lenA = len(A)
print(jumps)
reach = [0] * lenA
for pos in range(1,lenA):
jumpmin = lenA
for jump in jumps:
leftsteps = pos - jump
if leftsteps >= 0:
if A[leftsteps] == 1 and reach[leftsteps] + 1 < jumpmin:
jumpmin = reach[leftsteps] + 1
else:
break
reach[pos] = jumpmin
#print(reach)
return reach[-1] if reach[-1] != lenA else -1