<prompt> Kwa kuzingatia mtiririko wa data wa nambari kamili zisizo hasi a1, a2, ..., an, fanya muhtasari wa nambari zinazoonekana kufikia sasa kama orodha ya vipindi tofauti.Tekeleza darasa la SummaryRanges: SummaryRanges Huanzisha kipengee kwa mtiririko tupu. ongezeko batilithamani ya ndani Huongeza thamani kamili kwenye mtiririko. int getIntervals Hurejesha muhtasari wa nambari kamili katika mtiririko kwa sasa kama orodha ya vipindi visivyounganishwa starti, endi. Jibu linapaswa kupangwa kwa starti.Mfano wa 1:Ingizo SummaryRanges , addNum , getIntervals , addNum , getIntervals , addNum , getIntervals , addNum , getIntervals, addNum , getIntervals, 1, , 3, , 7, , 2, , 6, Patonull, null, 1, 1, null, 1, 1, 3, 3, null, 1, 1 , 3, 3, 7, 7, null, 1, 3, 7, 7, null, 1, 3, 6, 7UfafanuziSummaryRanges summaryRanges new SummaryRanges;muhtasariSafu.ongezaNambari1; arr 1summaryRanges.getIntervals; rudisha 1, 1muhtasariSafu.addNum3; arr 1, 3summaryRanges.getIntervals; rudisha 1, 1, 3, 3muhtasariSafu.addNum7; arr 1, 3, 7summaryRanges.getIntervals; kurudi 1, 1, 3, 3, 7, 7muhtasariRanges.addNum2; arr 1, 2, 3, 7summaryRanges.getIntervals; rudisha 1, 3, 7, 7muhtasariSafu.ongezaNambari6; arr 1, 2, 3, 6, 7summaryRanges.getIntervals; rudisha 1, 3, 6, 7Vikwazo: 0 thamani 104 Angalau zaidi simu 3 104 zitapigwa kwa addNum na getIntervals. Angalau simu 102 zitapigiwa getIntervals.Fuata: Je, iwapo kuna miunganisho mingi na idadi ya vipindi vitenganishi ni ndogo ikilinganishwa na ukubwa wa mtiririko wa data?  <response>: chatukutoka kwa makusanyo ingiza OrderedDictsafu za muhtasari wa darasa: def __init__binafsi: self.intervals OrderedDict def addNumbinafsi, val: int - Hakuna: ikiwa sio self.intervals au inayofuataiterself.intervals val 1: self.intervalsval val kwingine: keys listself.intervals.keys idx bisect_leftfunguo, vali ikiwa idx 0 na vitufeidx - 1 val self.intervalskeysidx - 1: kupita elif idx lenkeys na val 1 funguoidx: self.intervalsval self.intervalsfunguoidx del self.intervalsfunguoidx kwingine: self.intervalsval val def getIntervalsbinafsi: orodha ya kurejeshaself.intervals.itemsmaelezoTutadumisha ramani TreeMap katika Java, OrderedDict in Python, na Ramani katika JavaScript ili kuhifadhi sehemu za kuanzia na za mwisho za vipindi visivyounganishwa. Vifunguo vya ramani vinawakilisha mwanzo wa muda, na maadili yao yanayolingana ni mwisho wa muda.1. Ikiwa ramani ni tupu, au hakuna muda uliopita ambao unaweza kuunganishwa na nambari ya sasa, tutaunda muda mpya wa kutenganisha kuanzia na kumalizia kwa nambari ya sasa na kuihifadhi kwenye ramani.2. Vinginevyo, tunajaribu kuunganisha nambari na vipindi vilivyopo. Tunapata eneo kamili ambapo nambari ingefaa kwenye ramani. Ikiwa nambari iko kati ya muda uliopo, tunaipuuza. Ikiwa nambari iko upande wa kushoto wa muda wowote uliopo na inaweza kuunganishwa, tunasasisha thamani ya mwisho ya muda. Ikiwa nambari iko upande wa kulia wa muda wowote uliopo, tunaunda ingizo jipya kwenye ramani na kuanza na kumaliza kama nambari ya sasa.Ili kutoa vipindi, tunabadilisha tu jozi za thamani-msingi za ramani kuwa orodha ya orodha zinazowakilisha vipindi. 