def jump_game(nums): target_num_index = len(nums) - 1 for i in range(len(nums) - 2, -1, -1): if target_num_index <= i + nums[i]: target_num_index = i if target_num_index == 0: return True return False 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? ", "True" if jump_game(nums[i]) else "False", sep="") print("-" * 100) if __name__ == '__main__': main()