Pythonで乗算された数の最大合計を見つけるプログラム
numsとmultipliersという2つのリストがあるとします。ここで、numsから任意の数を削除し、乗数から任意の数を削除してから、それらを乗算できる操作について考えてみます。リストの1つが空になるまでこの操作を繰り返す必要があり、乗算された数値の最大合計を見つける必要があります。
したがって、入力がnums =[-4、4、3]の乗数=[-2、2]のようである場合、出力は16になります。これは、-4を-2に、4を2に一致させて-4を取得できるためです。 * -2 + 4 * 2.
これを解決するには、次の手順に従います-
-
リスト番号を並べ替える
-
リストの乗数を並べ替える
-
res:=0
-
numsのサイズ<乗数のサイズの場合
-
numsとmultipliersを交換します:=multipliers、nums
-
-
n:=numsのサイズ
-
m:=乗数のサイズ
-
0からm-1の範囲のiの場合、実行
-
乗数[i]<=0の場合、
-
res:=res + nums[i]*乗数[i]
-
-
それ以外の場合
-
res:=res+乗数[i]*nums [n-(m --i)]
-
-
-
解像度を返す
例
理解を深めるために、次の実装を見てみましょう
def solve(nums, multipliers): nums.sort() multipliers.sort() res = 0 if len(nums) < len(multipliers): nums, multipliers = multipliers, nums n, m = len(nums), len(multipliers) for i in range(m): if multipliers[i] <= 0: res += nums[i] * multipliers[i] else: res += multipliers[i] * nums[n - (m - i)] return res nums = [-4, 4, 3] multipliers = [-2, 2] print(solve(nums, multipliers))
入力
[-4, 4, 3], [-2, 2]
出力
16
-
Pythonで1からNまでのすべての欠落している数字を見つけるプログラム
サイズnのnumsと呼ばれる数値のリストがあり、リスト内のすべての数値が区間[1、n]に存在するとします。一部の要素は、2回表示され、他の要素は1回だけ表示される場合があります。リストにないように、[1、n]からすべての番号を見つける必要があります。昇順でソートされた番号を返す必要があります。線形の時間と一定のスペースを必要とする解決策を見つけようとする必要があります。 したがって、入力が[4、4、2、2、6、6]の場合、出力は[1、3、5]になります。 これを解決するには、次の手順に従います- arr:=サイズnums + 1の配列で、0で埋めます numsの各iについて、 ar
-
最大3つの数字を見つけるPythonプログラム
このチュートリアルでは、3つの数字から最大量を見つけるプログラムを作成します。 3つの数字があり、その3つの数字から最大数を見つけることが目標です。 理解を深めるために、いくつかのサンプルテストケースを見てみましょう。 Input: a, b, c = 2, 34, 4 Output: 34 Input: a, b, c = 25, 3, 12 Output: 25 Input: a, b, c = 5, 5, 5 Output: 5 以下の手順に従って、3つの数字の中から最大数を見つけてください。 アルゴリズム 1. Initialise three numbers a, b