Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 요소 목록에서 k번째 누락된 숫자를 찾는 프로그램

<시간/>

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