計蒜客 跳躍遊戲 貪心

2021-09-01 11:43:21 字數 1172 閱讀 1868

給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。

陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。

請確認你是否能夠跳躍到陣列的最後乙個下標。

例如:a = [2,3,1,1,4] 能夠跳躍到最後乙個下標,輸出true

a = [3,2,1,0,4] 不能跳躍到最後乙個下標,輸出false

第一行輸入乙個正整數 n(1≤n≤500),接下來的一行 n 個整數,輸入陣列 ai​。

如果能跳到最後乙個下標,輸出true,否則輸出false

5

2 0 2 0 1

true

貪心思想:

方法一:從前往後找。我們可以找到第乙個可以直接跳到最後乙個地方的點,然後把這個地方作為最後乙個點(這個點能到最後乙個,那麼只要能到這個點就能到最後乙個),一直迴圈,看看0這個地方能否作為最後乙個點,如果能則輸出true,否則輸出false。

#include int main() 

}if (n)

printf("false\n");

else printf("true\n");

}return 0;

}

方法二:從後往前找。我們可以找到最後乙個可以直接跳到最後乙個地方的點,然後把這個地方作為最後乙個點(這個點能到最後乙個,那麼只要能到這個點就能到最後乙個),一直迴圈,看看0這個地方能否作為最後乙個點,如果能則輸出true,否則輸出false。

#include int main() 

return 0;

}

方法三:用maxstep存當前跳躍的最大距離,迴圈遍歷出當前跳躍的最大距離。看看最後最大距離是否大於等於n,如果大於等於n則證明能到達最後乙個,否則不能。

#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...