Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの配列パーティションI


2n個の整数の配列があるとすると、これらの整数を(a1、b1)、(a2、b2)、...、(an、bn)のようにn組の整数にグループ化する必要があります。 (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ジャンプします
    • answer:=answer + array [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

  1. Pythonで配列を回転

    配列Aがあるとします。kステップ右に回転する必要があります。したがって、配列がA =[5、7、3、6、8、1、5、4]、およびk =3の場合、出力は[1,5,4,5,7,3,6、 8]。手順は次のようなものです [4,5,7,3,6,8,1,5] [5,4,5,7,3,6,8,1] [1,5,4,5,7,3,6,8] これを解決するために、次の手順に従います。 nは配列のサイズです k =k mod n A =n –kからendまでのAのサブアレイ+0からn– k –1までのAのサブアレイ 理解を深めるために、次の実装を見てみましょう- 例 class Solut

  2. ソートされた配列をPythonでマージ

    2つの並べ替えられた配列AとBがあるとします。それらをマージして、1つの並べ替えられた配列Cのみを形成する必要があります。リストのサイズは異なる場合があります。 たとえば、A=[1,2,4,7]およびB=[1,3,4,5,6,8]とすると、マージされたリストCは[1,1,2,3,4、 4,5,6,7,8] これを解決するには、次の手順に従います- ifine i:=0、j:=0 and end:=length of A – 1 =0であり、A[end]ではありません。 end:=end – 1 whilej