Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 평균이 target보다 크거나 같은 K-Length 하위 목록의 수를 찾는 프로그램

<시간/>

목록 번호가 있고 두 개의 추가 값 k 및 target이 있다고 가정하고 크기가 k이고 평균 값 ≥ target인 하위 목록의 수를 찾아야 합니다.

따라서 입력이 nums =[1, 10, 5, 6, 7] k =3 target =6과 같으면 하위 목록 [1, 10, 7]의 평균 값이 6이고 출력은 2가 됩니다. [10, 5, 6]은 평균 7입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다.

  • 대상 :=대상 * k
  • 합계:=0, 응답:=0
  • 각 인덱스 i와 숫자 n에 대해 다음을 수행합니다.
    • i>=k이면
      • 합계 :=합 - 숫자[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