貪心 LeetCode55 跳躍遊戲

2021-10-24 07:22:38 字數 1185 閱讀 2914

// 貪心演算法:不斷地去更新當前可以走到的最大距離。

// 這種規律題,可以找一組簡單的數進行規律尋找。

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 輸入...