本菜狗难得做出来的题。
就遍历一次数组前n-1个元素(i=[0:n-2]),维护一个target的最大值max_num,target代表第当前元素最远能跳到哪个位置。
当遍历时碰到0的时候,就判断max_num是否大于i,如果大于i说明能跳过,小于等于i的话就说明无法跳过。
in_list = list(map(int, input()[1:-1].split(',')))
if len(in_list) == 1:
print('true')
elif in_list[0] == 0:
print('false')
else:
# index_0 = []
max_num = 0
for i in range(len(in_list) - 1):
target = in_list[i] + i # 目标点
if target >= (len(in_list) - 1): # 可以直接到终点
print('true')
break
if in_list[i] == 0:
# index_0.append(i)
if i >= max_num: # 无法跳过0
print('false')
break
else: # 可以跳过0
continue
elif target > max_num:
max_num = target
else:
print('true')

全部评论
(0) 回帖