lintcode 116. 跳跃游戏
给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置。
代码
def canJump(self, A):
# write your code here
if A is None or len(A)==0:
return False
dp=[[0] for i in range(len(A))]
dp[0]=True
for j in range(1,len(A),1):
dp[j]=False
for i in range(0,j,1):
if dp[i]==True and i+A[i]>=j:
dp[j]=True
return dp[len(A)-1]
想法
dp[j] 指代能不能跳到那一块(指序号为j的石头)石头,返回dp[len(A)-1]的原因是,数组是从零开始的,