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;
        }
    };
    
  • 相关阅读:
    POJ2352
    POJ 2524 并查集
    A POJ1611
    树状dp--B
    spring mvc实现文件上传与下载
    Joda-Time
    JAVA对象与JSON之间的转换
    jackson-databind注解
    JPA注解
    springMVC、spring、jpa、springData整合配置
  • 原文地址:https://www.cnblogs.com/lengender-12/p/6869851.html
Copyright © 2011-2022 走看看