給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。
陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。
請確認你是否能夠跳躍到陣列的最後乙個下標。
例如:a = [2,3,1,1,4] 能夠跳躍到最後乙個下標,輸出true
;
a = [3,2,1,0,4] 不能跳躍到最後乙個下標,輸出false
。
第一行輸入乙個正整數 n(1≤n≤500),接下來的一行 n 個整數,輸入陣列 ai。
如果能跳到最後乙個下標,輸出true
,否則輸出false
。
52 0 2 0 1
true貪心思想:
方法一:從前往後找。我們可以找到第乙個可以直接跳到最後乙個地方的點,然後把這個地方作為最後乙個點(這個點能到最後乙個,那麼只要能到這個點就能到最後乙個),一直迴圈,看看0這個地方能否作為最後乙個點,如果能則輸出true,否則輸出false。
方法二:從後往前找。我們可以找到最後乙個可以直接跳到最後乙個地方的點,然後把這個地方作為最後乙個點(這個點能到最後乙個,那麼只要能到這個點就能到最後乙個),一直迴圈,看看0這個地方能否作為最後乙個點,如果能則輸出true,否則輸出false。#include int main()
}if (n)
printf("false\n");
else printf("true\n");
}return 0;
}
方法三:用maxstep存當前跳躍的最大距離,迴圈遍歷出當前跳躍的最大距離。看看最後最大距離是否大於等於n,如果大於等於n則證明能到達最後乙個,否則不能。#include int main()
return 0;
}
#include #include using namespace std;
int main()
maxstep = max(maxstep, i + a[i]);
if (maxstep >= n - 1) }}
return 0;
}
計蒜客 跳躍遊戲(貪心)
給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。請確認你是否能夠跳躍到陣列的最後乙個下標。例如 a 2,3,1,1,4 a 2,3 1,1 4 能夠跳躍到最後乙個下標,輸出true a 3,2,1,0,4 a 3,2 1,0 4 不能跳躍到...
計蒜客 跳躍遊戲 貪心
對於當前位置可以到達的一堆點,我們肯定是選擇那個能到達最遠距離的點。不如當前點1,能到達2,3,4.而2能到達3,4 3能到達4 4能到達5,6,7.那麼我們肯定是選擇從1直接到4,因為4能到達更遠的地方。我們就是這樣來貪心做即可 include include include include in...
計蒜客 貪心 跳躍遊戲
給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。請確認你是否能夠跳躍到陣列的最後乙個下標。例如 a 2,3,1,1,4 a 2,3,1,1,4 a 2,3,1,1,4 能夠跳躍到最後乙個下標,輸出true a 3,2,1,0,4 a 3,2...