// 貪心演算法:不斷地去更新當前可以走到的最大距離。
// 這種規律題,可以找一組簡單的數進行規律尋找。
bool
canjump
(const std::vector<
int>
& nums)
// 儲存中間態,得到每個位置可以走到的最遠距離。
std::vector<
int> distances;
for(
int i =
0; i < nums.
size()
;++i)
// 每個點進行遍歷,比較每個點可以走到的最大距離,這樣就能不斷地更新
// 最終可以走到的最大距離,如果最大距離大於等於終點,那麼就可以說明
// 可以到達終點。 如果走到某個點時的可以到達的最遠距離小於該點的位置,
// 說明前面所有點的最大距離都走不到這裡,所以肯定走不到終點。
int max_distance = distances[0]
;for
(int i =
1; i < nums.
size()
;++i)
if(max_distance < i)
if(max_distance < distances[i])}
return
true;}
intmain()
)?"can"
:"no"
)<< std::endl;
std::cout <<
(canjump()
?"can"
:"no"
)<< std::endl;
return0;
}
Leetcode 55 跳躍遊戲 貪心
題目描述 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 ...
LeetCode 55 跳躍遊戲(貪心)
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 輸出 fa...
LeetCode 55 跳躍遊戲 貪心
給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2 3,1 1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1 然後再從位置 1 跳 3 步到達最後乙個位置。示例 2 輸入...