LeetCode55. Jump Game

1、題目鏈接

https://leetcode.com/problems/jump-game/

2、解題思路

首先,這是一道比較經(jīng)典的貪心算法題曙咽,何為貪心,我所理解的就是局部最優(yōu)挑辆,不考慮全局的情況下(>_<說(shuō)人話:就是說(shuō)每次我都選最好的那一個(gè)),這道題就是說(shuō)給你一個(gè)數(shù)組孝情,數(shù)組里面的數(shù)代表你每次能跳躍的最大距離鱼蝉,就好比我走臺(tái)階,每一階臺(tái)階上面都標(biāo)了你最多只能往前走幾個(gè)臺(tái)階箫荡,問(wèn)你能不能從臺(tái)階的起點(diǎn)到達(dá)臺(tái)階的終點(diǎn)魁亦,那么,我們就走起來(lái)羔挡。我剛開始的想法是遍歷數(shù)組并計(jì)算數(shù)組當(dāng)前位置和當(dāng)前數(shù)組的值(最多能走幾步洁奈,貪心,我們就走最多的)绞灼,看是否有大于等于數(shù)組長(zhǎng)度的利术,如果有就輸出true,沒有就輸出false低矮,后來(lái)發(fā)現(xiàn)并不是這么簡(jiǎn)單印叁,就比如[1, 0, 1, 0]這一組數(shù)據(jù),我連第一個(gè)0都走不過(guò)去军掂,還怎么往后走轮蜕,于是乎就有了一個(gè)maxDistance這個(gè)值,這個(gè)值定義你當(dāng)前能走得到的最遠(yuǎn)的距離蝗锥,如果當(dāng)前我遍歷到的坐標(biāo)比maxDistance大那么說(shuō)明我遇到了0(不能走的)而且還走不過(guò)去跃洛,這時(shí)候也沒必要往后遍歷了;如果遍歷到maxDistance已經(jīng)可以走到最后一個(gè)位置的時(shí)候终议,這時(shí)候我們也沒必要往后再遍歷了汇竭,因?yàn)榭梢砸徊降轿涣讼醒樱绻疾粷M足的話,那么我們就一直遍歷然后更新maxDistance韩玩,遍歷完成之后判斷maxDistance是否可以走到最后一個(gè)位置

3垒玲、代碼

  • Java
private static boolean canJump(int[] nums) {
    if (null == nums || nums.length == 0) {
        return false;
    }
    if (nums.length == 1) {
        return true;
    }
    if (nums[0] == 0) {
        return false;
    }
    int maxDistance = 0;
    for (int i = 0; i < nums.length; i++) {
        if (maxDistance < i) {
            return false;
        } else if (maxDistance >= nums.length - 1) {
            return true;
        }
        maxDistance = Math.max(maxDistance, nums[i] + i);
    }
    return maxDistance >= nums.length - 1;
}
  • Python
def canJump(numList):
    if numList is None or len(numList) == 0:
        return False
    if len(numList) == 1:
        return True
    if numList[0] == 0:
        return False
    maxDistance = 0
    for index in range(len(numList)):
        if maxDistance < index:
            return False
        elif maxDistance >= len(numList) - 1:
            return True
        maxDistance = max(maxDistance, numList[index] + index)
    return maxDistance >= len(numList) - 1
  • JavaScript
var canJump = function(numList) {
    if (undefined === numList || null === numList || numList.length == 0) {
        return false
    }
    if (numList.length == 1) {
        return true
    }
    let maxDistance = 0
    for (let i = 0; i < numList.length; i++) {
        if (i > maxDistance) {
            return false
        } else if (maxDistance >= numList.length - 1) {
            return true
        }
        maxDistance = Math.max(maxDistance, numList[i] + i)
    }
    return maxDistance >= numList.length - 1
}

4、提交結(jié)果

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末找颓,一起剝皮案震驚了整個(gè)濱河市合愈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌击狮,老刑警劉巖佛析,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異彪蓬,居然都是意外死亡寸莫,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門档冬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)膘茎,“玉大人,你說(shuō)我怎么就攤上這事酷誓∨担” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵盐数,是天一觀的道長(zhǎng)棒拂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)玫氢,這世上最難降的妖魔是什么帚屉? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮漾峡,結(jié)果婚禮上攻旦,老公的妹妹穿的比我還像新娘。我一直安慰自己灰殴,他們只是感情好敬特,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牺陶,像睡著了一般伟阔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掰伸,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天皱炉,我揣著相機(jī)與錄音,去河邊找鬼狮鸭。 笑死合搅,一個(gè)胖子當(dāng)著我的面吹牛多搀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播灾部,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼康铭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了赌髓?” 一聲冷哼從身側(cè)響起从藤,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锁蠕,沒想到半個(gè)月后夷野,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荣倾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年悯搔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舌仍。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妒貌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抡笼,到底是詐尸還是另有隱情苏揣,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布推姻,位于F島的核電站,受9級(jí)特大地震影響框沟,放射性物質(zhì)發(fā)生泄漏藏古。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一忍燥、第九天 我趴在偏房一處隱蔽的房頂上張望拧晕。 院中可真熱鬧,春花似錦梅垄、人聲如沸厂捞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)靡馁。三九已至,卻和暖如春机久,著一層夾襖步出監(jiān)牢的瞬間臭墨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工膘盖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胧弛,地道東北人尤误。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像结缚,于是被迫代替她去往敵國(guó)和親损晤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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

  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,216評(píng)論 0 4
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,370評(píng)論 0 5
  • 一些概念 數(shù)據(jù)結(jié)構(gòu)就是研究數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及它們之間相互關(guān)系红竭,并對(duì)這種結(jié)構(gòu)定義相應(yīng)的運(yùn)算尤勋,而且確保經(jīng)過(guò)這...
    Winterfell_Z閱讀 5,690評(píng)論 0 13
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章德崭,發(fā)現(xiàn)簡(jiǎn)書還為我保存起的...
    Jenaral閱讀 2,737評(píng)論 2 9
  • 動(dòng)態(tài)規(guī)劃 111. 爬樓梯思路類似斐波那契數(shù)列注意考慮第 0 階的特殊情況 272. 爬樓梯 II思路類似上題斥黑,只...
    6默默Welsh閱讀 2,417評(píng)論 0 1