[LeetCode]561 Array Partition I

4082 ワード

[LetCode]561号Array Partition I
2 n個の元素があるので、
1 2 3 4 5 6
ジェジュンが(1,6)をpair(2,5)と書くと、5,6は使えません.これらはすべて高価なもので、使えません.
maxにするためには、いくつかの大きな値を使用する必要があります.
したがって、ソート後、2*iの2番目のインデックスにある要素を順次追加することを考慮します.
def arrayPairSum(self, nums: List[int]) -> int:
        sum = 0
        nums.sort()
        # i 는 index
        limit = int(len(nums)/2)
        for i in range(limit):
            sum += nums[2*i]
        return sum
Python-rangeでのstepオプション
  • 位で、iを2単位で抽出しました.
  • したがって、
  • は、毎回2*iという演算を実行する.
  • pythonはrangeでstepというオプションを提供できます.→ 0,2,4,6 .. このようにiを抽出するためにstep 2を与えることができる.
  • def arrayPairSum(self, nums: List[int]) -> int:
            sum = 0
            nums.sort()
            # i 는 index
            num_len = len(nums)
            for i in range(0,num_len,2):
                sum += nums[i]
            return sum
    sum( nums[::2])