成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一場跳躍游戲!你玩過了嗎?

開發 前端
剛看到本題一開始可能想:當前位置元素如果是3,我究竟是跳一步呢,還是兩步呢,還是三步呢,究竟跳幾步才是最優呢?

[[435245]]

跳躍游戲

力扣題目鏈接:https://leetcode-cn.com/problems/jump-game

給定一個非負整數數組,你最初位于數組的第一個位置。

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

判斷你是否能夠到達最后一個位置。

示例 1:

  • 輸入: [2,3,1,1,4]
  • 輸出: true
  • 解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然后再從位置 1 跳 3 步到達最后一個位置。

示例 2:

  • 輸入: [3,2,1,0,4]
  • 輸出: false
  • 解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最后一個位置。

思路

剛看到本題一開始可能想:當前位置元素如果是3,我究竟是跳一步呢,還是兩步呢,還是三步呢,究竟跳幾步才是最優呢?

其實跳幾步無所謂,關鍵在于可跳的覆蓋范圍!

不一定非要明確一次究竟跳幾步,每次取最大的跳躍步數,這個就是可以跳躍的覆蓋范圍。

這個范圍內,別管是怎么跳的,反正一定可以跳過來。

那么這個問題就轉化為跳躍覆蓋范圍究竟可不可以覆蓋到終點!

每次移動取最大跳躍步數(得到最大的覆蓋范圍),每移動一個單位,就更新最大覆蓋范圍。

貪心算法局部最優解:每次取最大跳躍步數(取最大覆蓋范圍),整體最優解:最后得到整體最大覆蓋范圍,看是否能到終點。

局部最優推出全局最優,找不出反例,試試貪心!

如圖:

跳躍游戲

i每次移動只能在cover的范圍內移動,每移動一個元素,cover得到該元素數值(新的覆蓋范圍)的補充,讓i繼續移動下去。

而cover每次只取 max(該元素數值補充后的范圍, cover本身范圍)。

如果cover大于等于了終點下標,直接return true就可以了。

C++代碼如下:

  1. class Solution { 
  2. public
  3.     bool canJump(vector<int>& nums) { 
  4.         int cover = 0; 
  5.         if (nums.size() == 1) return true; // 只有一個元素,就是能達到 
  6.         for (int i = 0; i <= cover; i++) { // 注意這里是小于等于cover 
  7.             cover = max(i + nums[i], cover); 
  8.             if (cover >= nums.size() - 1) return true; // 說明可以覆蓋到終點了 
  9.         } 
  10.         return false
  11.     } 
  12. }; 

總結

這道題目關鍵點在于:不用拘泥于每次究竟跳跳幾步,而是看覆蓋范圍,覆蓋范圍內一定是可以跳過來的,不用管是怎么跳的。

大家可以看出思路想出來了,代碼還是非常簡單的。

一些同學可能感覺,我在講貪心系列的時候,題目和題目之間貌似沒有什么聯系?

 

**是真的就是沒什么聯系,因為貪心無套路!**沒有個整體的貪心框架解決一些列問題,只能是接觸各種類型的題目鍛煉自己的貪心思維!

 

責任編輯:武曉燕 來源: 代碼隨想錄
相關推薦

2022-06-18 08:49:33

Edge瀏覽器

2019-11-26 10:15:24

騰訊游戲

2025-01-14 13:56:35

2013-01-24 11:03:30

2015-10-19 18:32:19

2018-01-26 09:36:07

2019-01-10 16:52:26

華為

2018-08-24 11:44:46

華為云的

2009-04-10 08:47:34

戴爾智能手機移動OS

2021-07-06 12:27:36

混合云多云云計算

2021-08-01 22:42:57

區塊鏈互聯網技術

2017-03-20 19:40:29

AndroidSwipeRefres下拉刷新

2013-11-11 09:47:19

英特爾代工游戲

2016-10-26 08:36:16

2022-11-06 15:56:50

2023-06-02 10:27:26

2022-05-27 09:02:31

Openbase開源前端

2010-11-23 09:38:03

私有云

2021-02-22 09:10:10

數字人民幣DCEP區塊鏈
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲久久一区 | 91视频88av| 欧美日韩在线一区二区 | 久久精品国产久精国产 | 久久久久久综合 | 亚洲伊人久久综合 | 精品1区 | 日本精品一区二区三区视频 | 欧美在线一区二区三区 | 欧美 日韩 国产 成人 在线 | 精品亚洲国产成av人片传媒 | 中文字幕免费中文 | 国产精品亚洲一区二区三区在线观看 | 天堂色区 | 日韩三级免费网站 | 蜜桃免费一区二区三区 | 一区二区三区精品在线 | 亚洲免费在线视频 | 国产综合久久 | 精品久久精品 | 国产在线中文 | 久久成人一区 | 91精品麻豆日日躁夜夜躁 | 久久美女网 | 国产视频久久久 | 国产精品7777777| 国产高清视频在线播放 | 日韩在线欧美 | 久久中文免费视频 | 欧美日韩淫片 | 亚洲精品一区中文字幕乱码 | 91视视频在线观看入口直接观看 | 日日干夜夜操天天操 | 国产最新视频在线 | 亚洲一区 | 国产成人精品免费 | 久久精品黄色 | 91久久精品国产免费一区 | 日韩1区| 色综合久 | 蜜桃视频一区二区三区 |