Question: 
## write a function to find the minimum number of jumps to reach the end of the array for the given array of integers where each element represents the max number of steps that can be made forward from that element. > indented block > indented block


Model's Code:
def min_jumps(arr, n):
    if n <= 1:
        return 0
    jumps = 0
    curr_end = 0
    curr_farthest = 0
    for i in range(n - 1):
        curr_farthest = max(curr_farthest, i + arr[i])
        if i == curr_end:
            jumps += 1
            curr_end = curr_farthest
            if curr_end >= n - 1:
                break
    return jumps if curr_end >= n - 1 else float('inf')



Sample Correct Code:
def min_jumps(arr, n):
	jumps = [0 for i in range(n)]
	if (n == 0) or (arr[0] == 0):
		return float('inf')
	jumps[0] = 0
	for i in range(1, n):
		jumps[i] = float('inf')
		for j in range(i):
			if (i <= j + arr[j]) and (jumps[j] != float('inf')):
				jumps[i] = min(jumps[i], jumps[j] + 1)
				break
	return jumps[n-1]


Asserts:
assert min_jumps([1, 3, 6, 1, 0, 9], 6) == 3
assert min_jumps([1, 3, 5, 8, 9, 2, 6, 7, 6, 8, 9], 11) == 3
assert min_jumps([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 11) == 10


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 689 of 974: 518/689 (75.18142235123368%): success