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

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]

  1. 辞書で最も高い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

  2. 配列内の最大の要素を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列を指定すると、配列内で最大の要素を見つける必要があります。 アプローチ maxを最初の要素として初期化します。 この後、指定された配列を2番目の要素から最後までトラバースします。 トラバースされたすべての要素について、現在のmaxの値と比較します maxより大きい場合、maxが更新されます。 それ以外の場合、ステートメントはを超えます 以下の実装を見てみましょう- 例 def largest(arr,n):    #maximal element