LeetCode(55)Jump Game

来源:互联网 发布:linux文件复制命令 编辑:程序博客网 时间:2024/05/22 13:24

题目: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.

解法:

贪心,能跳多远跳多远。从左到右遍历一遍数组,记下当前能跳到的最远距离。只要某个点在能跳的范围内且通过这一个点能跳到更远的距离,就更新最远距离。最后再判断最后一个点在不在能跳到的最远距离内。复杂度:O(n)。

代码:

class Solution {public:    bool canJump(vector<int>& nums) {        int maxdis=0;//目前能跳到的最远距离        for(int i=0;i<nums.size()-1;i++)        {            if(i<=maxdis)//能跳到这一个点            {                maxdis=max(i+nums[i],maxdis);//如果通过这一点能够跳到更远,更新            }        }        if(maxdis>=nums.size()-1) return true;        return false;    }};


0 0
原创粉丝点击