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
-
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
-
ソートされた配列を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