Pythonで辞書式順序で最大の山のリストを見つけるプログラム
n、lower、upperという3つの正の数があるとします。長さがnで、厳密に増加してから厳密に減少し、すべての数値が[下限と上限](両方を含む)の範囲内にあるリストを見つける必要があります。そして、それぞれの増加および減少する部分は空ではないはずです。辞書式順序で可能な限り最大のそのようなリストを見つける必要があります。これが不可能な場合は、空のリストを返します。
したがって、入力がn =5下=3上=7のようである場合、出力は[6、7、6、5、4]になります。よく見ると、[7、6、5、4、3 ]は、厳密に増加する部分が空でない必要があるため、無効です。
これを解決するには、次の手順に従います-
-
n> 2 *(上-下)+ 1の場合、
-
空のリストを返す
-
-
c:=上-下
-
d:=1
-
c
-
d:=n --c --1
-
-
dが0と同じ場合、
-
d:=1
-
-
f:=(upper --d)から(upper --1)までの範囲の新しいリスト
-
g:=範囲(upper --n + d --1)からupperまでの新しいリスト
-
fとgを連結して返します
例
理解を深めるために、次の実装を見てみましょう
def solve(n, lower, upper): if n > 2 * (upper - lower) + 1: return [] c = upper - lower d = 1 if c < n: d = n - c - 1 if d == 0: d = 1 f = list(range(upper - d, upper)) g = list(range(upper, upper - n + d, -1)) return f + g n = 5 lower = 3 upper = 7 print(solve(n, lower, upper))
入力
5, 3, 7
出力
[6, 7, 6, 5, 4]
-
リスト内の要素の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力としてリストが与えられた場合、与えられたリストの合計を計算する必要があります。 ここでは、考慮すべき2つのアプローチがあります。つまり、組み込み関数を使用する方法と、ブルートフォースアプローチを使用する方法です。 アプローチ1-組み込み関数の使用 例 # main arr = [1,2,3,4,5] ans = sum(arr) print ('Sum of the array is ',ans) 出力 15 すべての変数と関数はグローバルスコープで宣言されて
-
配列内の最大の要素を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列を指定すると、配列内で最大の要素を見つける必要があります。 アプローチ maxを最初の要素として初期化します。 この後、指定された配列を2番目の要素から最後までトラバースします。 トラバースされたすべての要素について、現在のmaxの値と比較します maxより大きい場合、maxが更新されます。 それ以外の場合、ステートメントはを超えます 以下の実装を見てみましょう- 例 def largest(arr,n): #maximal element