1. 程式人生 > >lintcode ----跳躍遊戲

lintcode ----跳躍遊戲

法一:動態規劃   【先把A[0]加到res,如果res[i-1]能走到 i  ,那麼res[i]存的即為能走的最遠的距離(從res[i-1] 和A[i]+i)中取得】

bool canJump(vector<int> A) {
        // write you code here
     
        vector<int> res;
        res.push_back(A[0]);
        for(int i=1;i<A.size();i++)
        {
            if(res[i-1]>=i)
                res.push_back(max(A[i]+i,res[i-1]));
            else
                res.push_back(0);
        }
        return res[res.size()-1]>=A.size()-1;
        
        
        
    }

法二:貪心法【最大步數能走到當前步則每次用最遠距離更新最大步,每次判斷是否可以走到最後,可以直接返回true,如果連當前步都走不到,跳出while 返回false】
bool canJump(vector<int> A) {
        // write you code here
      
        int max_gap =0;
        int cur = 0;
        while(max_gap>=cur)
        {
            max_gap=max(max_gap,cur+A[cur]);
            cur++;
            if(max_gap>=A.size()-1)
                return true;
        }
        return false;
       
    }


相關推薦

LintCode:跳躍遊戲 II

class Solution: # @param A, a list of integers # @return an integer def jump(self, A):

lintcode ----跳躍遊戲

法一:動態規劃   【先把A[0]加到res,如果res[i-1]能走到 i  ,那麼res[i]存的即為能走的最遠的距離(從res[i-1] 和A[i]+i)中取得】 bool canJump(v

lintcode--跳躍遊戲

A = [2,3,1,1,4],返回 true. A = [3,2,1,0,4],返回 false. public class Solution { /* 首先來看一下如何使用動態規劃求解該問題。使用動態規劃求解問題,首先需要找到問題的狀態和狀態轉化方程 假設問題的狀態,假設位置i(0≤i≤A.len

Lintcode 跳躍遊戲

給出一個非負整數陣列,你最初定位在陣列的第一個位置。    陣列中的每個元素代表你在那個位置可以跳躍的最大長度。     判斷你是否能到達陣列的最後一個位置。 樣例 A = [2,3,1,1,4],返回 true. A = [3,2,1,0,4],返回

lintcode--跳躍遊戲--跳躍遊戲

題目描述: 給出一個非負整數陣列,你最初定位在陣列的第一個位置。 陣列中的每個元素代表你在那個位置可以跳躍的最大長度。 判斷你是否能到達陣列的最後一個位置。 注意事項: 這個問題有兩個方法,一

[Lintcode]跳躍遊戲 II

給出一個非負整數陣列,你最初定位在陣列的第一個位置。 陣列中的每個元素代表你在那個位置可以跳躍的最大長度。    你的目標是使用最少的跳躍次數到達陣列的最後一個位置。 樣例 給出陣列A =

LintCode-跳躍遊戲

給出一個非負整數陣列,你最初定位在陣列的第一個位置。    陣列中的每個元素代表你在那個位置可以跳躍的最大長度。     判斷你是否能到達陣列的最後一個位置。 樣例 A = [2,3,1,1,4],返回 true. A = [3,2,1,0,4],返回 false

Lintcode 117. 跳躍遊戲 II

給出一個非負整數陣列,你最初定位在陣列的第一個位置。 陣列中的每個元素代表你在那個位置可以跳躍的最大長度。    你的目標是使用最少的跳躍次數到達陣列的最後一個位置。 public int jump(int[] A) { int count = 0; int maxPo

Lintcode : 116. 跳躍遊戲

給出一個非負整數陣列,你最初定位在陣列的第一個位置。    陣列中的每個元素代表你在那個位置可以跳躍的最大長度。     判斷你是否能到達陣列的最後一個位置。 public boolean canJump(int[] A) { // write your cod

LeetCode 55. Jump Game (跳躍遊戲

mat col lean osi pub 情況 you track rip Given an array of non-negative integers, you are initially positioned at the first index of the ar

貪心算法-跳躍遊戲

sample clu itl 判斷 main %d 數據 str 算法 給定一個非負整數數組,假定你的初始位置為數組第一個下標。 數組中的每個元素代表你在那個位置能夠跳躍的最大長度。 你的目標是到達最後一個下標,並且使用最少的跳躍次數。 例如: A=[2,3,1,1,4

LeetCode 55. 跳躍遊戲(Jump Game)

更新 你在 ron 索引 etc urn -- bre nbsp 題目描述 給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸

計蒜客-跳躍遊戲二 (簡單dp)

inf PE sizeof size stream 分析 數組初始化 整數 CA 題目鏈接:https://nanti.jisuanke.com/t/20

跳躍遊戲

system 更新 else 代碼 toe 輸出格式 最優 心算 pub 問題描述 給定一個非負整數數組,假定你的初始位置為數組第一個下標。 數組中的每個元素代表你在那個位置能夠跳躍的最大長度。 請確認你是否能夠跳躍到數組的最後一個下標。 例如: A=[2,3,1,1,4]

JSK 18: 跳躍遊戲

col 技術分享 hid 輸出 false algorithm top ostream color 題目描述 給定一個非負整數數組,假定你的初始位置為數組第一個下標。 數組中的每個元素代表你在那個位置能夠跳躍的最大長度。 請確認你是否能夠跳躍到數組的最後一個下標。 例如:$

[leetcode] 45. 跳躍遊戲 II(Java)(動態規劃)

com max https 重疊 http findmi 條件 leetcode scrip 45. 跳躍遊戲 II 動態規劃 此題可以倒著想。 看示例: [2,3,1,1,4] 我們從後往前推,對於第4個數1,跳一次 對於第3個數1,顯然只能跳到第4個數上,那麽從第3個數

[leetcode] 55. 跳躍遊戲

mat math num pro script length -- ble -c 55. 跳躍遊戲 分明就是45. 跳躍遊戲 II的縮水版本嘛。。??,難度高的版本居然放在了前面,把像我這種有強迫癥的必須按照題號刷題的人不放在眼裏麽。。。 class Solution {

LeetCode:跳躍遊戲【55】

style code new bsp known als fur 遊戲 solution LeetCode:跳躍遊戲【55】 題目描述 給定一個非負整數數組,你最初位於數組的第一個位置。數組中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後一個位置。 示例

LeetCode 跳躍遊戲系列

i+1 clas 條件 最小 false 顯式 class [] 動態規劃 55. 跳躍遊戲 給定一個非負整數數組,你最初位於數組的第一個位置。數組中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸

LeetCode---45.跳躍遊戲II

題目來源:https://leetcode-cn.com/problems/jump-game-ii/description/ 題目描述: 演算法描述:這題是上一個題的升級版,詳情請見https://blog.csdn.net/qq_39241239/article/details/8