[LeetCode] Jump Game

来源:互联网 发布:ios全局代理软件 编辑:程序博客网 时间:2024/06/06 14:15

问题:

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Determine if you are able to reach the last index.

For example:
A = [2,3,1,1,4], return true.

A = [3,2,1,0,4], return false.

分析:

不是很容易写出decent的代码。思路就是保存一个farest变量,表示的是目前能达到的最远的距离。然后从前向后遍历,一点一点把farest向后推。如果 i 已经超过farest或者farest已经超过input长度了,就可以停了。

代码:(O(n))

class Solution{public:bool canJump(int A[], int n){int farest = 0;for (int i = 0; i <= farest && farest < n; i ++) {farest = max(farest, A[i] + i);}return farest >= n - 1;}};


0 0
原创粉丝点击