배움 저장소
[Leet Code]055 Jump Game 본문
https://leetcode.com/problems/jump-game/submissions/
디버깅이 없었다면 이 문제를 못 풀었을 거 같다. 뭐가 문제인지 따라가보면서 확인하고 로직을 고치니 한결 수월했다. 이때까지 디버깅을 왜 안썼나 싶다.
class Solution {
public:
bool canJump(vector<int>& nums) {
saved_nums = nums;
count = saved_nums.size()-1;
return Jump(0);
}
private:
vector<int> saved_nums;
int count;
bool Jump(int cur)
{
// Validate Current Location
if(cur + saved_nums[cur] >= count) return true;
// Move Next Position
// cur is always smaller than saved_nums.size() -1
if(saved_nums[cur] == 0) return false;
int maxReach = 1;
int saved_i = -1;
for(int i=1; i<=saved_nums[cur]; ++i)
{
if(cur+i > count) continue;
if( i + saved_nums[cur+i] >= maxReach)
{
maxReach = i + saved_nums[cur+i];
saved_i = cur+i;
}
}
return saved_i==-1? false : Jump(saved_i);
}
};
'PS > LeetCode' 카테고리의 다른 글
[Leet Code] 066 Plus One (0) | 2021.11.05 |
---|---|
[Leet Code] 034. Find First and Last Position of Element in Sorted Array (0) | 2021.10.08 |
[Leet Code]009 Palindorme Number (0) | 2021.05.21 |
[Leet Code]007 Reverse Integer (0) | 2021.05.12 |
[Leet Code] 006 ZigZag Conversion (0) | 2021.05.10 |
Comments