Python入門基礎篇 No.30 —— 元組_生成器推導式建立元組_總結
阿新 • • 發佈:2021-01-17
跳躍遊戲
//跳躍遊戲
/*給出一個非負整數陣列,你最初在陣列第一個元素的位置
陣列中的元素代表你在這個位置可以跳躍的最大長度
判斷你是否能到達陣列最後一個元素的位置
例如
A =[2,3,1,1,4], 返回 true.
A =[3,2,1,0,4], 返回 false. */
#include<string>
#include<vector>
#include<algorithm>
#include<iostream>
#include<memory>
using namespace std;
class Solution {
public:
/*貪心演算法。每次都以當前位置pos的元素數字A[pos]前進,若當前位置元素為0,
記錄下當前能達到的最遠距離,逐次回退一位並判定每次(都按貪心方法前進)
是否能越過之前的最遠距離(位置元素為0的點),若位置回退至0或-1(開始
第一位的元素即為0)則返回false
*/
bool canJump(int* A, int n) {
int pos = 0;
while (pos < (n - 1))
{
int step = A[pos];
if (step == 0)
{
int farest = pos;
while ((pos + A[pos]) <= farest)
{
--pos;
if (pos <= 0)
return false;
}
continue;
}
pos += step;
}
return true;
}
};