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

Python의 배열에서 k번째 누락된 양수를 찾는 프로그램

<시간/>

엄격하게 증가하는 값으로 양수 정렬된 num이라는 배열이 있고 정수 k도 있다고 가정합니다. 이 배열에서 누락된 k번째 양의 정수를 찾아야 합니다.

따라서 입력이 nums =[1,2,4,8,12], k =6과 같으면 누락된 숫자가 [3,5,6,7,9,10,11이기 때문에 출력은 10이 됩니다. ], 여기서 6번째 항은 10입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • nums :=nums에 있는 요소의 새 집합

  • 개수 :=0

  • 숫자 :=1

  • 동안

    • num이 num이 아닌 경우

      • 개수 :=개수 + 1

    • 개수가 k와 같으면

      • 반환 번호

    • 숫자 :=숫자 + 1

  • 반환 번호

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(nums, k):
   nums = set(nums)
   count = 0
   num = 1
   while count < k:
      if num not in nums:
         count += 1
      if count == k:
         return num
      num += 1
   return num

nums = [1,2,4,8,12]
k = 6
print(solve(nums, k))

입력

[1,2,4,8,12], 6

출력

10