国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

LeetCode-045-跳躍游戲 II

2021-10-03 09:56 作者:雄獅虎豹  | 我要投稿

跳躍游戲 II

題目描述:給定一個非負整數(shù)數(shù)組,你最初位于數(shù)組的第一個位置。

數(shù)組中的每個元素代表你在該位置可以跳躍的最大長度。

你的目標是使用最少的跳躍次數(shù)到達數(shù)組的最后一個位置。

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

示例說明請見LeetCode官網(wǎng)。

來源:力扣(LeetCode) ??

鏈接:https://leetcode-cn.com/problems/jump-game-ii/ ??

著作權歸領扣網(wǎng)絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。

解法一:窮舉法

  • 首先,如果nums的長度為1,因為不需要走,直接返回0;

  • 如果nums的長度為2,由于一定可以到達最后一個位置,而且至少需要一步,直接返回1;

  • 當不是前兩種情況時,首先,聲明一個變量length為數(shù)組最大的索引位,聲明一個變量result記錄最少的跳躍次數(shù),初始化為最大的的int值,聲明一個HashMap為toJumpTimes記錄跳躍過的位置和相應跳躍到該位置最少的步數(shù),聲明一個隊列toJump記錄當前走到的位置,聲明一個隊列times同步記錄走到當前位置需要的步數(shù),首先,將0加入到jumped和times,然后遍歷隊列toJump按照以下過程處理:

    • 如果不存在并且當前跳躍次數(shù)小于result,則把當前索引位和相應的跳躍次數(shù)添加到toJump和times和toJumpTimes;

    • 如果存在并且當前跳躍次數(shù)小于最小的跳躍次數(shù),則把當前索引位和相應的跳躍次數(shù)添加到toJump和times,并且更新當前索引位在toJumpTimes中的最少跳躍次數(shù)。

    • 從隊列中取出一位cur;

    • 如果cur對應的數(shù)組的值為0,則跳過處理下一個隊列中的值;

    • 判斷toJumpTimes中是否存在該位置的索引,如果存在且走到當前位置的步數(shù)多于其他走法走到當前位置的步數(shù),則跳過處理下一個;

    • 如果cur對應的數(shù)組的值大于等于length-cur即可以從當前位置直接跳躍到最后一位,則判斷如果當前的跳躍次數(shù)小于result,則更新result的值;

    • 否則,如果當前跳躍次數(shù)不小于result,則跳過處理下一個;如果當前跳躍次數(shù)小于result,則將cur+1 ~ cur+nums[cur]索引位添加到toJump,添加之前需要判斷toJumpTimes的key中是否存在當前索引位:

最后,返回result即為最少跳躍次數(shù)。

說明:處理方法類似于 LeetCode-055-跳躍游戲 這道題目。

【每日寄語】 要銘記在心:每天都是一年中最美好的日子。



LeetCode-045-跳躍游戲 II的評論 (共 條)

分享到微博請遵守國家法律
宜黄县| 景洪市| 祁连县| 鄂州市| 云林县| 山西省| 桦甸市| 七台河市| 云浮市| 桦南县| 钟山县| 汽车| 改则县| 长治县| 廊坊市| 元朗区| 吐鲁番市| 汉阴县| 葫芦岛市| 梓潼县| 肇源县| 大英县| 吉安市| 隆子县| 安塞县| 乐山市| 宜章县| 六安市| 涟水县| 孟津县| 济宁市| 清水河县| 突泉县| 长海县| 周宁县| 和政县| 泰兴市| 连州市| 元朗区| 贵南县| 平阳县|