עבור לתוכן

רקורסיה: מערך דו מימדי

Featured Replies

פורסם

למיטב ידיעתי לא, אבל יכול להיות שאני מפספס משהו.

שים לב שגם אם מותר לך לשנות את המערך, אתה יכול להחזיר אותו לקדמותו בסוף הפונקציה.

אתה מוזמן להעלות את הקוד הסופי שלך אם אתה רוצה הערות.

פורסם
  • מחבר

בבקשה (ותודה...):

    public static int stain (char[][] mat, int row, int col)    {
int counter = 0;
int col_len = mat.length;
int row_len = mat[0].length;

if (row < 0 || col < 0 || row >= row_len || col >= col_len
|| mat[row][col] != 'x')
return 0;

else
{
if (mat[row][col] != '2')
{
counter += 1;
mat[row][col] = '2';
counter = counter + stain(mat, row + 1, col);
counter = counter + stain(mat, row - 1, col);
counter = counter + stain(mat, row, col - 1);
counter = counter + stain(mat, row + 1, col - 1);
counter = counter + stain(mat, row - 1, col - 1);
counter = counter + stain(mat, row, col + 1);
counter = counter + stain(mat, row + 1, col + 1);
counter = counter + stain(mat, row - 1, col + 1);
}



}

return counter;
}

פורסם

אחלה. אתה לא צריך את הבדיקה שהתא לא שווה 2, כי זה כבר "מוכל" בבדיקה שהוא שווה x.

פורסם
  • מחבר

תודה רבה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים