nums라고 하는 정렬된 고유 번호 목록과 정수 k가 있다고 가정하면 주어진 목록의 첫 번째 요소에서 k번째 누락된 숫자를 찾아야 합니다.
따라서 입력이 nums =[5,6,8,10,11], k =1과 같으면 9가 두 번째(인덱스 1) 누락된 숫자이므로 출력은 9가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
범위 1에서 숫자 크기까지의 i에 대해
-
diff :=숫자[i] - 숫자[i - 1] - 1
-
k>=diff이면
-
k :=k - 차이
-
-
그렇지 않으면
-
반환 숫자[i - 1] + k + 1
-
-
-
반환 숫자[-1] + k + 1
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, nums, k): for i in range(1, len(nums)): diff = nums[i] - nums[i - 1] - 1 if k >= diff: k -= diff else: return nums[i - 1] + k + 1 return nums[-1] + k + 1 ob = Solution() nums = [5,6,8,10,11] k = 1 print(ob.solve(nums, k))
입력
[5,6,8,10,11], 1
출력
9