時間限制:1000ms 記憶體限制:65536k
給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。
陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。
你的目標是到達最後乙個下標,並且使用最少的跳躍次數。
例如:a = [2,3,1,1,4]
,到達最後乙個下標的最少跳躍次數為
2。(先跳躍
1步,從下標 0到
1,然後跳躍
3步,到達最後乙個下標。一共兩次)
第一行輸入乙個正整數 n(
1≤n≤
100)
,接下來的一行,輸入
n個整數,表示陣列 a。
最後輸出最少的跳躍次數。
樣例輸入
53 1 1 1 1
樣例輸出
2
**:
#include #include using namespace std;
int board[105];//記錄輸入的資料
int re[105];//記錄到達每乙個格仔的最小步數
int main()
memset(re,0x3f3f3f3f,sizeof(re));
re[0] = 0;//到達初始格仔的最小步數為0
for(int i=0 ; ire[i]+1)
} }cout
}
跳躍遊戲二
給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。你的目標是到達最後乙個下標,並且使用最少的跳躍次數。例如 a 2,3,1,1,4 a 2,3,1,1,4 a 2,3 1,1 4 到達最後乙個下標的最少跳躍次數為 22 2。先跳躍 11 1 ...
跳躍遊戲二
給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。你的目標是到達最後乙個下標,並且使用最少的跳躍次數。例如 a 2,3,1,1,4 a 2,3,1,1,4 a 2,3,1,1,4 到達最後乙個下標的最少跳躍次數為 222。先跳躍 111 步,...
LintCode 跳躍遊戲 I VS跳躍遊戲 II
陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。分析 方法一 基於動態規劃的做法,時間複雜度o n 2 陣列dp i 表示能否到達下標為i的位置,對於從下標i 1開始的每乙個位置,都從下標j 0開始到i 1判斷能否到達j,並且判斷從j開始最遠能否跳到或超過i的...