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

Python에서 첫 번째 누락된 긍정


정렬되지 않은 정수 배열이 하나 있다고 가정합니다. 가장 작은 누락된 양수를 찾아야 합니다. 따라서 배열이 [4, -3, 1, -1]과 같으면 결과는 2가 됩니다.

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

  • i :=0으로 설정하고 모든 숫자 앞에 0 하나를 추가하여 배열 숫자 업데이트

  • 범위 0에서 숫자 길이까지의 i에 대해

    • nums[i]>=0이고 nums[i] 가 아닙니다.

      • 숫자[숫자[i]] :=숫자[i]

      • 숫자[i] :=숫자[숫자[i]]

  • 숫자 :=1

  • 범위 1에서 숫자 길이까지의 i에 대해

    • num =nums[i]이면 num을 1만큼 증가

  • 반환 번호

예시

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

class Solution(object):def firstMissingPositive(self, nums):i =0 nums =[0] + nums for i in range(len(nums)):while nums[i]>=0 and nums[i ] 

입력

[4,-3,1,-1]

출력

2