本菜狗难得做出来的题。
就遍历一次数组前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) 回帖