2n개의 정수 배열이 있다고 가정하고 이러한 정수를 n개의 정수 쌍으로 그룹화해야 합니다(예:(a1, b1), (a2, b2), ..., (an, bn)). (ai, bi) 가능한 한 큰 범위 1에서 n까지의 모든 i에 대해. 따라서 입력이 [1, 4, 3, 2]이면 출력은 4가 됩니다. 따라서 n은 2입니다. 쌍의 최대 합은 4입니다. 이것은 min(1, 2) + min(3, 4)입니다. =4
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- n은 배열의 크기입니다.
- 배열 정렬
- 답변 :=0
- 0~n 범위의 i에 대해 2만큼 점프
- 답변 :=대답 + 배열[i]
- 반환 응답
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
class Solution(object): def arrayPairSum(self, a): """ :type nums: List[int] :rtype: int """ n = len(a) a.sort() ans = 0 for i in range(0,n,2): ans += a[i] return ans ob1 = Solution() print(ob1.arrayPairSum([1,4,3,2]))
입력
[1,4,3,2]
출력
4