zoukankan      html  css  js  c++  java
  • Leetcode:55. Jump Game

    Description

    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.

    Example

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

    思路

    • 每一次选择跳到下一个能跳到最远的位置,如果某一次不跳了,说明不能跳到数组末尾,返回false.

    代码

    class Solution {
    public:
        bool canJump(vector<int>& nums) {
            int len = nums.size();
            if(len == 0) return false;
            
            int i = 0, max_flag = 0, max_value = nums[0];
            while(i < len){
                max_flag = -1;
                for(int j = i; j <= i + nums[i] && j < len; ++j){
                    if(j + nums[j] > max_value){
                        max_value = j + nums[j];
                        max_flag = j;
                    }
                    
                    if(max_value >= len - 1)
                        return true;
                }
                
                if(max_flag == -1) break;
                else i = max_flag;
            }
            
            return false;
        }
    };
    
  • 相关阅读:
    牛券
    探险
    雷达安装
    智力大冲浪
    奶牛玩杂技
    BJWC2008 秦腾与教学评估
    JSOI2010 部落划分
    作诗
    ASP.NET MVC4系列验证机制、伙伴类共享源数据信息(数据注解和验证)
    正则表达式
  • 原文地址:https://www.cnblogs.com/lengender-12/p/6869851.html
Copyright © 2011-2022 走看看