<prompt> Kwa kuzingatia m x n gridi ya jozi ya 2D gridi ambayo inawakilisha ramani ya 1s ardhi na 0s maji, rudisha _idadi ya visiwa_.kisiwa kimezungukwa na maji na huundwa kwa kuunganisha ardhi zilizo karibu kwa usawa au wima. Unaweza kudhani kingo zote nne za gridi ya taifa zote zimezungukwa na maji.Mfano wa 1:Ingizo: gridi 1 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 1, 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 Pato: 1Mfano wa 2:Ingizo: gridi 1 , 1 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 1 Pato: 3Vikwazo: m grid.length n gridi ya taifai.length 1 m, n 300 gridiij ni 0 au 1.  <response>: chatudef dfsgridi, i, j: ikiwa i 0 au i lengridi au j 0 au j lengridi0 au gridiij 0: kurudi gridiij 0 dfsgridi, i 1, j dfsgridi, i - 1, j dfsgridi, i, j 1 dfsgridi, i, j - 1def numIslandsgridi: hesabu 0 kwa mimi katika anuwailengridi: kwa j katika safulengridi0: ikiwa gridiij 1: hesabu 1 dfsgridi, i, j hesabu ya kurudimaelezoKanuni ya msingi ni utafutaji wa kina-kwanza DFS. Wazo ni kupitia gridi nzima na kwa kila seli yenye thamani ya 1, kuongeza hesabu ya kisiwa kwa 1 na kuendesha algoriti ya DFS kuanzia kisanduku hiki. Wakati wa upitishaji wa DFS, tunarekebisha gridi ya taifa kwa kuweka visanduku vilivyotembelewa vilivyo na 1 hadi 0, ambayo itaepuka kutembelea kisanduku sawa cha ardhi tena. Upitishaji wa DFS husimama wakati mipaka ya gridi ya taifa imefikiwa au kisanduku cha 0 kinapogongwa. DFS hufanya kazi kwa kujirudia kwenye seli jirani juu, chini, kushoto, na kulia za seli ya sasa.Utata wa saa wa algoriti hii ni Om n kwa kuwa huenda tukalazimika kutembelea kila kisanduku katika hali mbaya zaidi, ambapo m na n ni vipimo vya safu mlalo na safu wima za gridi ya taifa. 