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

平均がPythonのターゲットと同じかそれ以上のK-Lengthサブリストの数を見つけるプログラム


リスト番号があり、2つの追加値kとtargetがあるとすると、サイズがkで平均値がtarget以上のサブリストの数を見つける必要があります。

したがって、入力がnums =[1、10、5、6、7] k =3 target =6の場合、サブリスト[1、10、7]の平均値は6であり、出力は2になります。 [10、5、6]の平均は7です。

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

  • target:=target * k
  • sum:=0、ans:=0
  • 各インデックスiと数値nについて、実行します
    • i> =kの場合、
      • sum:=sum --nums [i --k]
    • 合計:=合計+ n
    • i> =(k-1)の場合、
      • 合計>=ターゲットの場合、
        • ans:=ans + 1
  • 回答を返す

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

サンプルコード

class Solution:
   def solve(self, nums, k, target):
      target *= k
      sum = 0
      ans = 0
      for i, n in enumerate(nums):
         if i >= k:
            sum -= nums[i - k]
         sum += n
         if i >= (k - 1):
            if sum >= target:
               ans += 1
         return ans

ob = Solution()
nums = [1, 10, 5, 6, 7]
k = 3
target = 6
print(ob.solve(nums, k, target))

入力

[1, 10, 5, 6, 7], 3, 6

出力

2

  1. Pythonでターゲットを取得するためにシンボルを配置する方法をいくつか見つけるプログラムはありますか?

    numsと呼ばれる非負の数のリストがあり、整数のターゲットもあるとします。式がターゲットと等しくなるように、+と-をnumで配置する方法の数を見つける必要があります。 したがって、入力がnums =[2、3、3、3、2] target =9のようである場合、出力は2になります。これは、-2 + 3 + 3 + 3+2および2+3+を持つことができるためです。 3 + 3 –2。 これを解決するには、次の手順に従います。 s:=numsのすべての数値の合計 sの場合、 0を返す W:=(s +ターゲット)の商/ 2 dp1:=サイズのリスト(W + 1)お

  2. Pythonでターゲットに到達するために必要な特定の操作の数を見つけるためのプログラム

    startとendの2つの値があるとすると、これらの操作を使用して、開始から終了に変換するために必要な操作の最小数を見つける必要があります- 1だけデクリメントします 2を掛ける したがって、入力がstart =2、end =7の場合、出力は3になります。これは、2を乗算して4を取得し、次に2を乗算して8を取得し、次に1を減算して7を取得できるためです。 これを解決するには、次の手順に従います- ans:=0 次のことを無限に行います。 end <=startの場合、 ans + start − endを返します それ以外の場合、終了が奇