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
- 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