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

Python에서 차이가 대상보다 큰 고유 쌍의 최대 수를 계산하는 프로그램

<시간/>

nums라는 숫자 목록과 다른 값 대상이 있다고 가정합니다. 각 쌍에 대해 i =대상입니다.

따라서 입력이 nums =[2, 4, 6, 10, 11], target =5와 같으면 쌍을 얻을 수 있으므로 출력은 2가 됩니다. (2, 6), (5, 10)

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

  • N :=A의 크기
  • 목록 A 정렬
  • ans :=0
  • j :=N / 2
  • 0 ~ N/2 범위의 i에 대해 다음을 수행합니다.
    • j 동안
    • j :=j + 1
  • j
  • ans :=ans + 1
  • j :=j + 1
  • 반환
  • 이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

    예시

    class Solution:
       def solve(self, A, target):
          N = len(A)
          A.sort()
          ans = 0
          j = N >> 1
          for i in range(N >> 1):
             while j < N and A[j] - A[i] < target:
                j += 1
             if j < N:
                ans += 1
                j += 1
          return ans
    ob = Solution()
    nums = [2, 4, 6, 10, 11]
    target = 5
    print(ob.solve(nums, target))

    입력

    [2, 4, 6, 10, 11], 5

    출력

    2