這道題我的思想總是要在列出所有可能的跳法上徘徊。誤區
第一種方法:如果某一位置有0,就從這個位置開始往前看,如果有一種情況能跳過0就繼續往下乙個位置走,如果沒有的話那就返回false。因為使用for迴圈遍歷所以0的位置都是從前往後數。
**:
class solution
}return false;} }
第二種思想就是要維護乙個最長距離,最長距離等於index+nums[index].如果上乙個位置能到達的最長距離大於當前位置 ,那麼當前位置也能遍歷到。然後就在當前位置重新計算最長能到達的位置。如果在中途某乙個位置的最長距離可以直接判斷能到達最後,那就直接返回true,或者中途有乙個位置判斷出是無法到達的就可以直接返回false.
public class solution }}
return false;}}
bool canjump(vector& nums)
return true;
}
總結:第三種解法的**量最少但是運算效率還沒有第一種複雜的**運算效率高,此外占用的記憶體也是最大的。 LeetCode55 跳躍遊戲
leetcode55.跳躍遊戲 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入...
LeetCode 55 跳躍遊戲
題目鏈結 題目描述 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。輸入 3,2,1,0,4 輸出 ...
LeetCode 55 跳躍遊戲
問題 給定乙個非負整數陣列,你最初位於陣列的第乙個位置,陣列中的每個元素代表你在該位置可以跳躍的最大長度,判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 從位置 0 到 1 跳 1 步,然後跳 3 步到達最後乙個位置。示例 2 輸入 3,2,1,0,4 輸出...