음이 아닌 정수 배열이 있다고 가정합니다. 우리는 처음에 배열의 첫 번째 인덱스에 위치합니다. 주어진 배열의 각 요소는 해당 위치에서 최대 점프 길이를 나타냅니다. 마지막 인덱스에 도달할 수 있는지 여부를 결정해야 합니다. 따라서 배열이 [2,3,1,1,4]와 같으면 출력은 true가 됩니다. 이것은 위치 0에서 위치 1로 한 단계 점프한 다음 위치 1에서 끝까지 세 단계 점프하는 것과 같습니다.
단계를 살펴보겠습니다 -
- n :=배열 A의 길이 – 1
- i:=n – 1, -1까지
- A[i] + i> n이면 n :=i
- n =0이면 true를 반환하고, 그렇지 않으면 false를 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution(object): def canJump(self, nums): n = len(nums)-1 for i in range(n-1,-1,-1): if nums[i] + i>=n: n = i return n ==0 ob1 = Solution() print(ob1.canJump([2,3,1,1,4]))
입력
[2,3,1,1,4]
출력
True