Giả sử một người ăn kiêng tiêu thụ lượng calo [i], điều này cho biết lượng calo vào ngày thứ i. Nếu chúng ta có một số nguyên k, cho mọi chuỗi k ngày liên tiếp, đó là (calo [i], calo [i + 1], ..., calo [i + k-1] cho tất cả 0 <=i <=n-k ), họ tìm thấy T. T là tổng lượng calo tiêu thụ trong chuỗi k ngày đó (calo [i] + calo [i + 1] + ... + calo [i + k-1]):Nhưng có một số điều kiện;
- Nếu T
- Nếu T> giới hạn trên, họ đã thực hiện tốt chế độ ăn kiêng của mình nên được 1 điểm;
- Nếu không, chúng hoạt động bình thường. Vì vậy, các điểm giống nhau.
Lúc đầu, người ăn kiêng không có điểm nào. Chúng ta phải tìm tổng số điểm mà người ăn kiêng đã đạt được.
Nếu mảng là [6,5,0,0] và k =2 trở xuống:=1 và trên:=5, thì đầu ra sẽ là 0. C [0] + C [1 ]> trên, do đó tăng một điểm, thấp hơn <=C [1] + C [2] <=trên nên không thay đổi, sau đó C [2] + C [3] Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau - Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
trên, sau đó tăng điểm 1
Ví dụ
class Solution(object):
def dietPlanPerformance(self, c, k, l, u):
temp = 0
for i in range(k):
temp += c[i]
right = k-1
left = 0
points = 0
while right < len(c):
if temp<l:
points-=1
elif temp>u:
points+=1
temp -=c[left]
left+=1
right+=1
if(right >= len(c)):
break
temp+=c[right]
return points
ob1 = Solution()
print(ob1.dietPlanPerformance([6,5,0,0],2,1,5))
Đầu vào
[6,5,0,0]
2
1
5
Đầu ra
0