Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 1.22 KB

Question_2658.md

File metadata and controls

42 lines (34 loc) · 1.22 KB

LeetCode Records - Question 2658 Maximum Number of Fish in a Grid

Attempt 1: Use recursion to search adjacent water cell

class Solution {
    public int findMaxFish(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        int maxFishNum = 0;

        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (grid[i][j] != 0) {
                    maxFishNum = Math.max(maxFishNum, getFishNum(m, n, grid, i, j));
                }
            }
        }

        return maxFishNum;
    }

    private int getFishNum(int m, int n, int[][] grid, int centerI, int centerJ) {
        if (centerI < 0 || centerI >= m || centerJ < 0 || centerJ >= n || grid[centerI][centerJ] == 0) {
            return 0;
        }
        
        int sum = grid[centerI][centerJ];
        grid[centerI][centerJ] = 0;

        sum += getFishNum(m, n, grid, centerI - 1, centerJ);
        sum += getFishNum(m, n, grid, centerI + 1, centerJ);
        sum += getFishNum(m, n, grid, centerI, centerJ - 1);
        sum += getFishNum(m, n, grid, centerI, centerJ + 1);

        return sum;
    }
}
  • Runtime: 3 ms (Beats: 100.00%)
  • Memory: 44.88 MB (Beats: 55.45%)