<prompt> Unapewa safu ya vipindi, ambapo vipindii starti, endi na kila starti ni kipekee.Muda wa kulia wa muda i ni muda j hivi kwamba startj endi na startj ni kupunguzwa. Kumbuka kuwa i inaweza kuwa sawa na j.Rejesha _safu za fahirisi za muda wa kulia kwa kila kipindi i_. Ikiwa hakuna muda wa kulia upo kwa muda i, basi weka -1 kwenye faharasa i.Mfano wa 1:Ingizo: vipindi 1,2Pato: -1Maelezo: Kuna muda mmoja tu katika mkusanyiko, kwa hivyo hutoa -1.Mfano wa 2:Ingizo: vipindi 3,4,2,3,1,2Pato: -1,0,1Maelezo: Hakuna muda sahihi wa 3,4.Muda sahihi wa 2,3 ni 3,4 kwani start0 3 ndio mwanzo mdogo kabisa ambao ni end1 3.Muda sahihi wa 1,2 ni 2,3 kwani start1 2 ndio mwanzo mdogo kabisa ambao ni end2 2.Mfano wa 3:Ingizo: vipindi 1,4,2,3,3,4Pato: -1,2,-1Maelezo: Hakuna muda sahihi wa 1,4 na 3,4.Muda sahihi wa 2,3 ni 3,4 kwani start2 3 ndio mwanzo mdogo kabisa ambao ni end1 3.Vikwazo: 1 vipindi. urefu 2 104 vipindii.urefu 2 -106 starti endi 106 Mahali pa kuanzia kwa kila kipindi ni kipekee.  <response>: chatudef findRightIntervalvipindi: starts interval0: index for index, interval in enumerateintervals res kwa muda katika vipindi: kulia minkichujiolambda x: x muda1, starts.keys, chaguo-msingi-1 res.appendinaanzakulia ikiwa ni sawa! -1 mwingine -1 kurudi resmaelezoAlgorithm kwanza huunda ramani, inaanza, ili kuhifadhi saa za kuanza kwa kila kipindi na faharasa inayolingana katika safu asili. Kisha, tunarudia kupitia kila kipindi, tukipata muda wa chini zaidi wa kuanza kuwa mkubwa kuliko au sawa na muda wa mwisho wa muda kwa kutumia lower_bound C au ceilingEntry Java au chujio Python, JavaScript. Tukipata muda halali wa kuanza, tunapata faharasa inayolingana kutoka kwenye ramani ya kuanza na kuihifadhi katika safu ya matokeo, vinginevyo tutahifadhi -1. 