<prompt> Unapewa m x n matrix kamili matrix yenye sifa mbili zifuatazo: Kila safu mlalo imepangwa kwa mpangilio usiopungua. Nambari kamili ya kwanza ya kila safu ni kubwa kuliko nambari kamili ya mwisho ya safu mlalo iliyotangulia.Kwa kuzingatia lengo kamili, rudisha kweli _kama_ lengwa _iko katika_ matrix _au_ sivyo _vinginevyo_.Lazima uandike suluhu katika uchangamano wa wakati Ologim n.Mfano wa 1:Ingizo: matrix 1,3,5,7,10,11,16,20,23,30,34,60, lengo 3Pato: kweliMfano wa 2:Ingizo: matrix 1,3,5,7,10,11,16,20,23,30,34,60, lengo 13Pato: si kweliVikwazo: m matrix.length n matrixi.urefu 1 m, n 100 -104 matrixij, lengo 104  <response>: chatudef searchMatrixmatrix, lengo: m, n lenimatrix, lenimatrix0 l, r 0, m n - 1 wakati l r: katikati l r - l 2 mid_val matrixkatikati nmid n ikiwa mid_val lengo: kurudi Kweli elif mid_val target: l katikati 1 kwingine: r katikati - 1 kurudi UongomaelezoAlgorithm hutumia utaftaji wa binary kwenye matrix ya m x n.Kwanza, idadi ya safu na safu wima m na n imehesabiwa. Kisha, tunaanzisha viashiria vya kushoto na kulia l na r.Katika kila hatua ya utafutaji wa binary, tunahesabu index ya kati katikati na kupata thamani inayolingana mid_val kwenye tumbo. Ili kupata thamani katika tumbo, tunagawanya katikati na n na kuchukua salio.Kisha tunalinganisha mid_val na lengo. Ikiwa ni sawa na lengo, tunarudi kweli. Ikiwa ni chini ya lengo, tunahamisha pointer ya kushoto kwenye nafasi inayofuata katikati 1. Vinginevyo, tunasonga pointer sahihi katikati - 1.Ikiwa nafasi ya utafutaji imechunguzwa kikamilifu na lengo halipatikani, tunarejesha sivyo. 