Computer >> Máy Tính >  >> Lập trình >> Python

Khoảng thời gian hoạt động tốt nhất trong Python

Giả sử chúng ta có danh sách giờ, đây là danh sách số giờ làm việc mỗi ngày của một nhân viên nhất định. Ở đây, một ngày được coi là một ngày mệt mỏi nếu và chỉ khi số giờ làm việc (nghiêm túc) lớn hơn 8. Một khoảng thời gian hoạt động tốt là khoảng thời gian mà số ngày mệt mỏi lớn hơn số của những ngày không mệt mỏi. Chúng ta phải tìm độ dài của khoảng thời gian hoạt động tốt dài nhất. Vì vậy, nếu đầu vào giống như [9,9,6,0,6,6,9], vậy thì đầu ra sẽ là 3. Điều này là do khoảng thời gian hoạt động tốt dài nhất là [9,9,6]

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • đặt temp:=0 và ans:=0, tạo một bản đồ d và góc:=0
  • cho tôi trong phạm vi từ 0 đến mảng kích thước của giờ - 1
    • temp:=temp + 1 nếu giờ [i]> 8, nếu không thì -1
    • nếu giờ [i]> 8, thì góc =1
    • nếu nhiệt độ> 0, thì ans:=tối đa là ans và i + 1
    • nếu nhiệt độ không có trong bản đồ d, thì d [temp]:=i
    • if temp - 1 trong map d, then, ans:=Maximum of ans và i - d [temp - 1]

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

 class Lời giải (đối tượng):def long nhấtWPI (self, hours):temp =0 ans =0 d ={} angle =0 for i in range (len (hours)):temp + =1 if hours [i]> 8 else -1 nếu giờ [i]> 8:angle =1 nếu temp>
 0:ans =max (ans, i + 1) if temp not in d:d [temp] =i if temp-1 in d:ans =max (ans, i-d [temp-1]) return max (ans, 0) ob =Solution () print (ob.longestWPI ([9,9,6,0,6,6,9]))  

Đầu vào

 [9,9,6,0,6,6,9] 

Đầu ra

 3