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