Pythonはitertoolsモジュールを使用してアルゴリズムの問題を解決します

アレイを再配置します

配列番号を指定します。配列には2n個の要素があり、[x1、x2、...、xn、y1、y2、...、yn]の形式で配置されています。

配列を[x1、y1、x2、y2、…、xn、yn]の形式で再配置し、再配置された配列を返します。

例1:

入力:nums = [2,5,1,3,4,7]、n = 3
出力:[2,3,5,4,1,7]
説明:x1 = 2なので、x2 = 5、x3 = 1 、y1 = 3、y2 = 4、y3 = 7なので、答えは[2,3,5,4,1,7]です。
例2:

入力:nums = [1,2,3,4,4,3,2,1]、n = 4
出力:[1,4,2,3,3,2,4,1]
例3:

入力:
nums = [1,1,2,2] 、n = 2出力:[1,2,1,2]

コードは次のように表示されます。

from itertools import chain
from typing import List

class Solution:
    def shuffle(self, nums: List[int], n: int) -> List[int]:
        return list(chain(*zip(nums[:n], nums[n:])))

1次元配列の動的合計

numの配列を提供します。配列の「動的合計」の計算式は次のとおりです。runningSum[i] = sum(nums [0]…nums [i])。

動的なnumの合計を返します。

例1:

入力:nums = [1,2,3,4]
出力:[1,3,6,10]
説明:動的および計算プロセスは[1、1 + 2、1 + 2 + 3、1 + 2 + 3 +4]。
例2:

入力:nums = [1,1,1,1,1]
出力:[1,2,3,4,5]
説明:動的および計算プロセスは[1、1 + 1、1 + 1 + 1、1 + 1 + 1 + 1、1 + 1 + 1 + 1 +1]。
例3:

入力:nums = [3,1,2,10,1]
出力:[3,4,6,16,17]

コードは以下のように表示されます

from itertools import accumulate
from typing import List

class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        return list(accumulate(nums))

おすすめ

転載: blog.csdn.net/weixin_43372169/article/details/110380466