最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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的評論 (共 條)

分享到微博請遵守國家法律
清水河县| 阳谷县| 呼和浩特市| 普洱| 文成县| 淮南市| 长宁区| 珲春市| 阆中市| 韶关市| 许昌市| 黄浦区| 新泰市| 华亭县| 招远市| 英超| 嘉黎县| 马龙县| 江安县| 九龙坡区| 南平市| 措美县| 蒲城县| 云安县| 朝阳县| 麻栗坡县| 获嘉县| 衡水市| 西充县| 霍山县| 洛宁县| 拉孜县| 肇庆市| 南投市| 晋中市| 莱州市| 台中县| 合阳县| 化德县| 团风县| 犍为县|