跳躍遊戲系列

2021-10-23 13:12:57 字數 1736 閱讀 8436

**已在 leetcode 上驗證通過。

55.跳躍遊戲

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。

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

判斷你是否能夠到達最後乙個位置。

class solution 

return true;

}};

45.跳躍遊戲 ii

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。

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

你的目標是使用最少的跳躍次數到達陣列的最後乙個位置。

class solution 

return step;

}};

1306.跳躍遊戲 iii

這裡有乙個非負整數陣列 arr,你最開始位於該陣列的起始下標 start 處。

當你位於下標 i 處時,你可以跳到 i + arr[i] 或者 i - arr[i]。

請你判斷自己是否能夠跳到對應元素值為 0 的任一下標處。

class solution 

return false;

}};

1345.跳躍遊戲 iv

給你乙個整數陣列 arr ,你一開始在陣列的第乙個元素處(下標為 0)。

每一步,你可以從下標 i 跳到下標:

i + 1 滿足:i + 1 < arr.length

i - 1 滿足:i - 1 >= 0

j 滿足:arr[i] == arr[j] 且 i != j

請你返回到達陣列最後乙個元素的下標處所需的 最少操作次數 。

class solution    

for (int i = 0; i < mp[arr[t]].size(); i++)

}mp.erase(arr[t]);

cntpre--;

if (cntpre == 0)

}return -1;

}};

1340.跳躍遊戲 v

給你乙個整數陣列 arr 和乙個整數 d 。每一步你可以從下標 i 跳到:

i + x ,其中 i + x < arr.length 且 0 < x <= d 。

i - x ,其中 i - x >= 0 且 0 < x <= d 。

除此以外,你從下標 i 跳到下標 j 需要滿足:arr[i] > arr[j] 且 arr[i] > arr[k] ,其中下標 k 是所有 i 到 j 之間的數字。

你可以選擇陣列的任意下標開始跳躍。請你返回你 最多 可以訪問多少個下標。

class solution );

sort(t.begin(), t.end());

for (int i = 0; i < n; i++)

for (int j = index+1; j<=index+d && j= arr[index]) break;

dp[index] = max(dp[index], dp[j]+1);

}res = max(res, dp[index]);

}return res;

}};

LintCode 跳躍遊戲 I VS跳躍遊戲 II

陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。分析 方法一 基於動態規劃的做法,時間複雜度o n 2 陣列dp i 表示能否到達下標為i的位置,對於從下標i 1開始的每乙個位置,都從下標j 0開始到i 1判斷能否到達j,並且判斷從j開始最遠能否跳到或超過i的...

LintCode Jump Game 跳躍遊戲

給出乙個非負整數陣列,你最初定位在陣列的第乙個位置。陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。樣例 a 2,3,1,1,4 返回 true.a 3,2,1,0,4 返回 false.注意 這個問題有兩個方法,乙個是貪心和 動態規劃。貪心方法時間複雜度為o...

跳躍遊戲二

給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。你的目標是到達最後乙個下標,並且使用最少的跳躍次數。例如 a 2,3,1,1,4 a 2,3,1,1,4 a 2,3 1,1 4 到達最後乙個下標的最少跳躍次數為 22 2。先跳躍 11 1 ...