跳躍游戲 II 算法swift

題目描述

給定一個(gè)非負(fù)整數(shù)數(shù)組,你最初位于數(shù)組的第一個(gè)位置。
數(shù)組中的每個(gè)元素代表你在該位置可以跳躍的最大長度。
你的目標(biāo)是使用最少的跳躍次數(shù)到達(dá)數(shù)組的最后一個(gè)位置。

示例:

輸入: [2,3,1,1,4]
輸出: 2
解釋: 跳到最后一個(gè)位置的最小跳躍數(shù)是 2。
從下標(biāo)為 0 跳到下標(biāo)為 1 的位置,跳 1 步,然后跳 3 步到達(dá)數(shù)組的最后一個(gè)位置。
說明:

假設(shè)你總是可以到達(dá)數(shù)組的最后一個(gè)位置。

解題思路:

從左到右,依次查找到能一次跳到目的地的位置des最后位置k,然后將目的地位置des更新為k,遞歸循環(huán)到k=0,每地遞歸一次步數(shù)+1,最后返回步數(shù)。另外如果全部出現(xiàn)全部為1的情況,添加標(biāo)簽flag,表示到達(dá)目的地的位置之前的元素是否全為1,如果全為1,且最后一步k = des - 1,直接返回des-1 +jumps(之前的步數(shù))。 代碼如下:

var jumps = 0
func jump(_ nums: [Int]) -> Int {
        
    if nums.count < 2 {
        return 0
    }
    return jumpTo(nums.count - 1, nums: nums)
    
}
func jumpTo(_ des:Int,nums:[Int]) -> Int {
        
    var k = 0
    jumps += 1
    var isnoOne = true  ///不是所有的元素都為1
    
    while k < des && nums[k] + k < des {///查找到目的地des的最后一跳的位置
        if nums[k] != 1{///過程中是否存在全為1的元素
            isnoOne = false
        }
        k += 1
    }
    if k == 0 {
        return jumps;
    }else if k == des - 1 && isnoOne{///des之前的元素都為1,且最后一步的位置在des - 1
        return des + jumps - 1
    }else{
        return jumpTo(k, nums: nums)///更新目的地為找到的最后一跳的位置
    }
    
}

跳躍游戲

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天繼續(xù)寫一道動(dòng)態(tài)規(guī)劃題目 給定一個(gè)非負(fù)整數(shù)數(shù)組,假定你的初始位置為數(shù)組第一個(gè)下標(biāo)。 數(shù)組中的每個(gè)元素代表你在那個(gè)...
    小熊_寶寶閱讀 822評(píng)論 0 0
  • 字符串匹配KMP算法詳解 1. 引言 以前看過很多次KMP算法,一直覺得很有用,但都沒有搞明白,一方面是網(wǎng)上很少有...
    張晨輝Allen閱讀 2,640評(píng)論 0 3
  • 鏈接:https://leetcode-cn.com/problems/jump-game-ii/descript...
    aniegai閱讀 2,124評(píng)論 0 2
  • 婆媳之間的關(guān)系特別復(fù)雜,明明是不相識(shí)的兩個(gè)人,卻因?yàn)橐粓龌橐龀蔀榱艘患胰?,甚至還要成為同住幾十年的室友。這樣的緣分...
    聚字成書閱讀 907評(píng)論 0 1
  • 每天都在我是不是結(jié)束和堅(jiān)持中糾纏度過?;橐?,離不掉,過下去是折磨。日子,過一天是絕望,結(jié)束掉,舍不得我可愛的孩子。...
    樊夫子閱讀 290評(píng)論 0 0

友情鏈接更多精彩內(nèi)容