Pythonでサイズkのサブリストの最大値を見つけるプログラム
リスト番号と別の値kがあるとすると、サイズkの各サブリストの最大値を見つける必要があります。
したがって、入力がnums =[12、7、3、9、10、9] k =3の場合、出力は[12、9、10、10]
になります。これを解決するには、次の手順に従います-
-
k> numsのサイズの場合、
-
空白のリストを返す
-
-
res:=新しいリスト
-
temp:=nums [0]
-
temp:=npoint:=0
-
0からk− 1の範囲のiの場合、実行
-
nums [i]> tempの場合、
-
temp:=nums [i]
-
ポイント:=i
-
-
-
resの最後にtempを挿入します
-
kからnumsのサイズの範囲のiの場合、実行します
-
nums [i]
-
temp:=nums [point]
-
-
それ以外の場合、nums [i]
=kの場合、 -
ポイント:=i − k + 1
-
i − k + 1からiの範囲のjについては、次のようにします
-
nums [j]> nums [point]の場合、
-
ポイント:=j
-
-
-
temp:=nums [point]
-
-
それ以外の場合
-
temp:=nums [i]
-
ポイント:=i
-
-
resの最後にtempを挿入します
-
-
解像度を返す
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, nums, k): if k > len(nums): return [] res = [] temp = nums[0] point = 0 for i in range(k): if nums[i] > temp: temp = nums[i] point = i res.append(temp) for i in range(k, len(nums)): if nums[i] < temp and (i − point) < k: temp = nums[point] elif nums[i] < temp and (i − point) >= k: point = i − k + 1 for j in range(i − k + 1, i + 1): if nums[j] > nums[point]: point = j temp = nums[point] else: temp = nums[i] point = i res.append(temp) return res ob = Solution() nums = [12, 7, 3, 9, 10, 9] k = 3 print(ob.solve(nums, k))
入力
[12, 7, 3, 9, 10, 9], 3
出力
[12, 9, 10, 10]
-
辞書で最も高い3つの値を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 辞書があれば、最も価値の高い3つの値を見つけて、それらを表示する必要があります。 アプローチ1-コレクションモジュールの使用(カウンター機能) 例 from collections import Counter # Initial Dictionary my_dict = {'t': 3, 'u': 4, 't': 6, 'o': 5, 'r': 21} k = Counter(my_dict) # Find
-
配列内の最大の要素を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列を指定すると、配列内で最大の要素を見つける必要があります。 アプローチ maxを最初の要素として初期化します。 この後、指定された配列を2番目の要素から最後までトラバースします。 トラバースされたすべての要素について、現在のmaxの値と比較します maxより大きい場合、maxが更新されます。 それ以外の場合、ステートメントはを超えます 以下の実装を見てみましょう- 例 def largest(arr,n): #maximal element