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

Pythonの末尾からK個の数値を削除して最大合計を見つけるプログラム


numsと呼ばれる数値のリストと別の値kがあるとします。正確にk回ポップする必要がある場合、削除できる要素の最大合計を見つける必要があります。各ポップは左端または右端から行うことができます。

したがって、入力がnums =[2、4、5、3、1] k =2の場合、2と4を削除できるため、出力は6になります。

これを解決するには、次の手順に従います-

  • window:=インデックス0からk-1までのすべての数値の合計
  • ans:=window
  • 1からkの範囲のiについては、
    • window:=window --nums [k --i]
    • window:=window + nums [-i]
    • ans:=ansとウィンドウの最大数
  • 回答を返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, nums, k):
      window = sum(nums[:k])
      ans = window
      for i in range(1, k + 1):
         window -= nums[k - i]
         window += nums[-i]
         ans = max(ans, window)
      return ans
ob = Solution()
nums = [2, 4, 5, 3, 1]
k = 2
print(ob.solve(nums, k))

入力

[2, 4, 5, 3, 1], 2

出力

6

  1. 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

  2. 最大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