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

Python의 배열 파티션 I

<시간/>

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