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

Python에서 1에서 n까지의 n+1개 숫자에서 중복 요소를 찾는 프로그램

<시간/>

길이가 n + 1인 숫자라는 숫자 목록이 있다고 가정합니다. 이 숫자는 1, 2, ..., n 범위에서 선택됩니다. 알다시피, 비둘기집 원리를 사용하면 중복이 있어야 합니다. 그것을 찾아서 돌려줘야 합니다.

따라서 입력이 [2, 1, 4, 3, 3]과 같으면 출력은 3

이 됩니다.

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

  • l :=숫자 크기
  • 온도 :=l*(l-1) /2
  • temp_sum :=nums의 모든 요소 합계
  • 반환(temp_sum - temp)

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

class Solution:
   def solve(self, nums):
      l = len(nums)
      temp = l*(l-1)/2
      temp_sum = sum(nums)
      return temp_sum-temp
ob = Solution()
print(ob.solve([2, 1, 4, 3, 3]))

입력

[2, 1, 4, 3, 3]

출력

3