Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ช่วงเวลาที่มีประสิทธิภาพดีที่สุดใน Python


สมมติว่าเรามีรายการชั่วโมง นี่คือรายการของจำนวนชั่วโมงทำงานต่อวันสำหรับพนักงานรายหนึ่งๆ ในที่นี้ หนึ่งวันถือเป็นวันที่เหน็ดเหนื่อยก็ต่อเมื่อจำนวนชั่วโมงทำงาน (อย่างเคร่งครัด) มากกว่า 8 ช่วงเวลาที่มีประสิทธิภาพดีหนึ่งช่วงคือช่วงเวลาของวันที่จำนวนวันที่เหนื่อยจะมากกว่าจำนวนอย่างเคร่งครัด ของวันที่ไม่เหน็ดเหนื่อย เราต้องหาความยาวของช่วงที่มีผลงานดีที่ยาวที่สุด ดังนั้นหากอินพุตเป็น [9,9,6,0,6,6,9] ดังนั้นผลลัพธ์จะเป็น 3 เนื่องจากช่วงที่ทำงานได้ดีที่สุดที่ยาวที่สุดคือ [9,9,6]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • set temp :=0 and ans :=0 สร้างหนึ่งแผนที่ d และมุม :=0
  • สำหรับฉันในช่วง 0 ถึงขนาดของอาเรย์ชั่วโมง – 1
    • temp :=temp + 1 if hours[i]> 8 มิฉะนั้น -1
    • ถ้า hours[i]> 8 แล้วมุม =1
    • ถ้าอุณหภูมิ> 0 แล้ว ans :=สูงสุดของ ans และ i + 1
    • ถ้า temp ไม่ได้อยู่ในแผนที่ d แล้ว d[temp] :=i
    • ถ้า temp – 1 ในแผนที่ d แล้ว ans :=maximum of ans และ i – d[temp – 1]

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

คลาส Solution(object):def longestWPI(self, hours):temp =0 ans =0 d ={} corner =0 for i in range(len(hours)):temp +=1 if hours[i]>8 อื่น -1 if hours[i]>8:corner =1 if 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,9])) 

อินพุต

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

ผลลัพธ์

3