<prompt> Kuna safu kamili nums iliyopangwa kwa mpangilio wa kupanda yenye thamani tofauti.Kabla ya kupitishwa kwa chaguo lako la kukokotoa, nums huenda imezungushwa katika faharasa egemeo isiyojulikana k 1 k nums.length hivi kwamba safu inayotokana ni numsk , numsk1, ..., numsn-1, nums0, nums1, ..., numsk-1 0-indexed . Kwa mfano, 0,1,2,4,5,6,7 inaweza kuzungushwa katika faharasa egemeo 3 na kuwa 4,5,6,7,0,1,2.Kwa kuzingatia safu nums baada ya mzunguko unaowezekana na lengo kamili, rudisha _faharasa ya_ lengo _ikiwa iko katika_ idadi_, au_ -1 _ikiwa haiko katika_ namba .Ni lazima uandike algoriti yenye utata wa Ologi n wakati wa utekelezaji.Mfano wa 1:Ingizo: nambari 4,5,6,7,0,1,2, lengo 0Pato: 4Mfano wa 2:Ingizo: nambari 4,5,6,7,0,1,2, lengo 3Pato: -1Mfano wa 3:Ingizo: nambari 1, lengo 0Pato: -1Vikwazo: 1 nums.length 5000 -104 nambarii 104 Thamani zote za nums ni pekee. nums ni mkusanyiko unaopanda ambao unaweza kuzungushwa. -104 lengo 104  <response>: chatuutaftaji wa def idadi, lengo: kushoto, kulia 0, leninambari - 1 wakati kushoto kulia: katikati kushoto kulia - kushoto 2 ikiwa numsmid lengo: kurudi katikati ikiwa numsmid numskushoto: ikiwa lengo numsleft na lengwa numsmid: kulia katikati - 1 kwingine: kushoto katikati 1 kwingine: ikiwa lengo numsmid na lengwa numskulia: kushoto katikati 1 kwingine: kulia katikati - 1 kurudi -1maelezoAlgorithm ni tofauti ya utafutaji wa binary. Wazo kuu ni kuamua ikiwa lengo liko upande wa kushoto au wa kulia wa safu ndogo ya sasa. Ikiwa numsmid numsleft, nusu ya kushoto imepangwa. Ikiwa lengo liko katika safu numsleft, numsmid, weka kulia katikati - 1. Vinginevyo, weka kushoto katikati 1. Ikiwa numsmid 