编写一个函数实现判断返回布尔 要求给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。 比如: 输入:[2,3,1,1,4]输出:true 解释:我们可以先跳1步,从位置0到达位置1,然后再从位置1跳3步到达最后一个位置。
时间: 2024-04-12 11:28:59 浏览: 48
可以使用贪心算法来解决这个问题。我们从数组的最后一个位置开始向前遍历,判断每个位置是否可以到达最后一个位置。如果一个位置可以到达最后一个位置,我们更新最后一个位置为当前位置,并继续向前遍历。最后,如果最后一个位置是数组的第一个位置,则说明可以到达最后一个位置,否则不能到达。
下面是实现这个函数的代码:
```python
def can_jump(nums):
last_position = len(nums) - 1
for i in range(len(nums) - 2, -1, -1):
if i + nums[i] >= last_position:
last_position = i
return last_position == 0
```
使用给定的例子来测试函数:
```python
nums = [2, 3, 1, 1, 4]
print(can_jump(nums)) # 输出: True
```
这段代码会输出 `True`,表示可以从第一个位置跳跃到最后一个位置。