<prompt> wastani ni thamani ya kati katika orodha kamili iliyoagizwa. Ikiwa ukubwa wa orodha ni sawa, hakuna thamani ya kati, na wastani ni maana ya maadili mawili ya kati. Kwa mfano, kwa arr 2,3,4, wastani ni 3. Kwa mfano, kwa arr 2,3, wastani ni 2 3 2 2.5.Tekeleza darasa la MedianFinder: MedianFinder inaanzisha kitu cha MedianFinder. ongezaBatiliint num huongeza num kamili kutoka kwa mtiririko wa data hadi muundo wa data. double findMedian hurejesha wastani wa vipengele vyote kufikia sasa. Majibu ndani ya 10-5 ya jibu halisi yatakubaliwa.Mfano wa 1:Ingizo MedianFinder , addNum , addNum , findMedian , addNum , findMedian, 1, 2, , 3, Patonull, null, null, 1.5, null, 2.0UfafanuziMedianFinder medianFinder MedianFinder mpya;medianFinder.addNum1; arr 1medianFinder.addNum2; arr 1, 2medianFinder.findMedian; kurudi 1.5 yaani, 1 2 2medianFinder.addNum3; arr1, 2, 3medianFinder.findMedian; kurudi 2.0Vikwazo: -105 nambari 105 Kutakuwa na angalau kipengele kimoja katika muundo wa data kabla ya kupiga simu findMedian. Angalau simu 5 104 zitapigwa addNum na findMedian.Fuatilia: Ikiwa nambari kamili kutoka kwa mtiririko ziko katika safu 0, 100, unawezaje kuboresha suluhisho lako? Ikiwa 99 ya nambari kamili kutoka kwa mtiririko ziko katika safu 0, 100, unawezaje kuboresha suluhisho lako?  <response>: chatukuagiza rundodarasa MedianFinder: def __init__binafsi: self.left max rundo self.right lundo la dakika def addNumbinafsi, num: int - Hakuna: ikiwa sio self.left au num -self.left0: heapq.heapppushself.left, -num kwingine: heapq.heapppushself.right, num ikiwa lenself.left lenself.right: heapq.heapppushself.left, -heapq.heappopself.right elif lenself.left lenself.right 1: heapq.heapppushself.right, -heapq.heappopself.left def findMedianself - kuelea: ikiwa lenself.left lenself.right: kurudi -self.left0 self.right0 2 kwingine: return -self.left0maelezoAlgorithm ya kutatua wastani katika orodha ya nambari kamili hufanya kazi kwa kudumisha lundo mbili, lundo la juu kwa nusu ya kushoto na lundo la min kwa nusu ya kulia. Nambari mpya inapoongezwa, inalinganishwa na thamani ya juu zaidi ya lundo la juu la kushoto. Ikiwa nambari ni ndogo au sawa, inaongezwa kwenye lundo la kushoto. Ikiwa nambari ni kubwa zaidi, inaongezwa kwa lundo ndogo la kulia. Kisha, tunasawazisha chungu mbili kwa kuhakikisha kwamba ukubwa wao hautofautiani na zaidi ya moja. Hii inahakikisha kwamba wastani kila wakati hupatikana kwa urahisi kama thamani kubwa zaidi katika lundo la kushoto au wastani wa thamani kubwa zaidi katika lundo la kushoto na thamani ndogo zaidi katika lundo la kulia. Algorithm ina utata wa wakati wa O logi N, ambapo N ni idadi ya vipengele kwenye orodha. 