<prompt> Kipengele cha kilele ni kipengele ambacho ni kikubwa zaidi kuliko majirani zake.Kwa kuzingatia safu kamili ya fahirisi 0 nums, tafuta kipengele kilele, na urudishe faharasa yake. Ikiwa safu ina vilele vingi, rudisha faharasa kwa kilele chochote.Unaweza kufikiria kuwa nums-1 numsn -. Kwa maneno mengine, kipengele daima huchukuliwa kuwa kikubwa zaidi kuliko jirani ambayo iko nje ya safu.Lazima uandike algoriti inayofanya kazi katika muda wa Ologi n.Mfano wa 1:Ingizo: nambari 1,2,3,1Pato: 2Maelezo: 3 ni kipengele cha kilele na chaguo lako la kukokotoa linapaswa kurudisha nambari ya faharisi 2.Mfano wa 2:Ingizo: nambari 1,2,1,3,5,6,4Pato: 5Maelezo: Chaguo zako za kukokotoa zinaweza kurudisha nambari ya faharasa 1 ambapo kipengele cha kilele ni 2, au nambari ya faharasa 5 ambapo kipengele cha kilele ni 6.Vikwazo: 1 nums.length 1000 -231 numsi 231 - 1 numsi ! numsi 1 kwa i zote halali.  <response>: chatudef findPeakElementnambari: kushoto, kulia 0, leninambari - 1 wakati kushoto kulia: katikati kushoto kulia - kushoto 2 ikiwa numsmid numsmid 1: kushoto katikati 1 kwingine: kulia katikati kurudi kushotomaelezoKwa tatizo hili, tunaweza kutumia utafutaji wa binary. Badala ya kulinganisha kipengele cha kati na thamani inayolengwa, tunailinganisha na majirani zake. Kulingana na kulinganisha, tunarekebisha viashiria vya kushoto na kulia ipasavyo:1. Anzisha kielekezi cha kushoto na kulia, kushoto 0 na kulia nums.length - 1.2. Wakati kushoto kulia, fanya yafuatayo: a. Kokotoa faharasa ya katikati, katikati kushoto kulia - kushoto 2. b. Ikiwa numsmid numsmid 1, sogeza kielekezi cha kushoto hadi katikati 1. c. Vinginevyo, sogeza kielekezi cha kulia hadi katikati.3. Wakati kushoto kulia, faharasa ya kilele hupatikana, kwa hivyo rudisha kushoto.Kwa kuwa tunatumia utaftaji wa binary, algorithm inakwenda kwa wakati wa Ologi n. 