Pythonで同じ要素の各ペアを区別するために配列を再配置できることを確認するプログラム
numsというリストがあるとすると、連続する2つの数値のすべてのペアの差が同じになるように、numsの順序を並べ替えることができるかどうかを確認する必要があります。
したがって、入力がnums =[8、2、6、4]のようである場合、出力はTrueになります。これは、[2、4、6、8]のようにnumを再配置すると、2つのペアごとの差が連続番号は2です。
これを解決するには、次の手順に従います-
-
N:=numsのサイズ
-
N <=2の場合、
-
Trueを返す
-
-
リスト番号を並べ替える
-
targetDiff:=nums [1]-nums [0]
-
2からN-1の範囲のiの場合、実行
-
nums [i] --nums [i -1]がtargetDiffと同じでない場合、
-
Falseを返す
-
-
-
Trueを返す
例
理解を深めるために、次の実装を見てみましょう
def solve(nums): N = len(nums) if N <= 2: return True nums.sort() targetDiff = nums[1] - nums[0] for i in range(2, N): if nums[i] - nums[i - 1] != targetDiff: return False return True nums = [8, 2, 6, 4] print(solve(nums))
入力
[8, 2, 6, 4]
出力
True
-
Pythonで特定の操作を実行してすべての要素を等しくするプログラム
numsと呼ばれる数値のリストを指定したとすると、値を等しくしたいとします。次に、リストから1つの要素を選択し、1つおきの値をインクリメントする操作を行います。要素の値を等しくするために必要な操作の最小数を見つける必要があります。 したがって、入力が[2、4、5]の場合、出力は5になります。 これを解決するには、次の手順に従います- min_val:=最小数 s:=0 numsの各numについて、実行します s:=s +(num --min_val) return s 理解を深めるために、次の実装を見てみましょう- 例 class Solution:
-
要素を減らしてPythonで配列をジグザグにする
整数の配列numsがあるとすると、移動操作は実際に任意の要素を選択し、それを1ずつ減らします。1または2のいずれかが満たされる場合、配列Aはジグザグ配列です- A [1] A [3] ...など。 すべての奇数インデックスの要素は、隣接する要素よりも大きいので、そうです。 A [0] A [2] A[4]<...など。 与えられた配列番号をジグザグ配列に変換するための最小移動数を見つける必要があります。 したがって、配列が[1,2,3]のような場合、出力は2になります。これは、2を0または3を1に減らすことができるためです。 これを解決するには、次の手順に従います-