Menu
CoddyTech

Number of Islands

בינוניגרפיםpython iconjava iconcpp iconc iconjs icon+10

ניתנת לך מפה כרשימה של מחרוזות באורך שווה, שבה '1' הוא משבצת של אדמה ו-'0' הוא משבצת של מים. שתי משבצות אדמה שייכות לאותו אי כאשר הן חולקות צלע: למעלה, למטה, שמאלה או ימינה. משבצות שנוגעות זו בזו רק בפינה אינן מחוברות. החזר את מספר האיים.

פונקציה

numIslands(grid: string-array) → integer
gridstring-array
המפה, מחרוזת אחת בכל שורה
מחזירהinteger
מספר האיים

אילוצים

  • 1 ≤ grid.length ≤ 150
  • 1 ≤ grid[i].length ≤ 150
  • לכל שורה יש אותו אורך.
  • כל תו הוא '0' או '1'.

דוגמאות

קלט
grid = ["11000", "11000", "00100", "00011"]
פלט
3
הסבר
ארבעת הריבועים בפינה השמאלית העליונה יוצרים אי אחד. הריבוע האמצעי בשורה השלישית נוגע בהם רק בפינה, ולכן הוא אי שני. הזוג בפינה הימנית התחתונה הוא השלישי.
challenge icon

שאלת המשך

כעת היבשה מופיעה ריבוע אחד בכל פעם על מפת מים. האם תוכל לדווח על מספר האיים אחרי כל ריבוע חדש, בלי לסרוק שוב את כל המפה?

איפוס הקוד
def numIslands(grid):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

ארגומנט

grid = ["11000", "11000", "00100", "00011"]

הפלט הצפוי

3