def print_array_with_markers(arr, p_value): out = "[" for i in range(len(arr)): if p_value == i: out += '«' out += str(arr[i]) + '»' + ", " else: out += str(arr[i]) + ", " out = out[0:len(out) - 2] out += "]" return out def jump_game(nums): print("\tSetting the last element in the array as our initial target: ", end="") target_num_index = len(nums) - 1 print(print_array_with_markers(nums, target_num_index), sep="") print("\t"*2, "Target index: ", target_num_index, sep="") print("\n\tChanging the target as we traverse the array backwards:") for i in range(len(nums) - 2): print("\t"*2, "Moving back one element: ", sep="", end="") target_num_index = len(nums) - (i + 2) print(print_array_with_markers(nums, target_num_index), sep="") print("\t"*2, "New target index: ", target_num_index, "\n", sep="") def main(): nums = [ [3, 2, 2, 0, 1, 4], [2, 3, 1, 1, 9], [3, 2, 1, 0, 4], [0], [1], [4, 3, 2, 1, 0], [1, 1, 1, 1, 1], [4, 0, 0, 0, 1], [3, 3, 3, 3, 3], [1, 2, 3, 4, 5, 6, 7] ] for i in range(len(nums)): print(i + 1, ".\tInput array: ", nums[i], sep="") print("\tCan we reach the very last index? ", "Yes" if jump_game(nums[i]) else "No", sep="") print("-" * 100) if __name__ == '__main__': main()