55. Jump Game

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.

一刷
Greedy貪婪法。維護(hù)一個(gè)maxCover,對(duì)數(shù)組從0 - maxCover或者nums.length進(jìn)行遍歷。當(dāng)maxCover >= nums.length - 1時(shí)表示可以跳到最后一個(gè)元素。需要計(jì)算精確。

Time Complexity - O(n), Space Complexity - O(1)。

public class Solution {
    public boolean canJump(int[] nums) {
        if(nums == null && nums.length == 0) return false;
        int maxCover = 0;
        for(int i=0; i<nums.length && i<=maxCover; i++){
            maxCover = Math.max(maxCover, i+nums[i]);
            if(maxCover>=nums.length-1) return true;
        }
        
        return false;
    }
}

二刷
greedy, 維護(hù)一個(gè)maxCover

public class Solution {
    public boolean canJump(int[] nums) {
        if(nums == null || nums.length == 0) return false;
        int maxCover = 0;
        for(int i=0; i<nums.length && i<=maxCover; i++){
            maxCover = Math.max(maxCover, i + nums[i]);
        }
        return maxCover >= nums.length-1;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,769評(píng)論 0 33
  • 問題描述 Given an array of non-negative integers, you are ini...
    codingXue閱讀 766評(píng)論 0 0
  • 01 最近,網(wǎng)上有個(gè)帖子特別火。 她專科年,我名校畢業(yè),我們合適嗎? 發(fā)帖人是一個(gè)年輕小伙,他跟一個(gè)女孩相親,女方...
    文子茵閱讀 1,035評(píng)論 3 4
  • 我在凝視中等來久違的安靜的時(shí)刻 正如你現(xiàn)在所處的那般 盼望已久的雪終于沒有如期而至 此時(shí)此地的冬天只遺下一顆顆禿樹...
    一只禪師閱讀 365評(píng)論 0 2