CCCPaste

Untitled

class Solution {
public:
    int islandPerimeter(vector>& grid) {
        int n = grid.size();
        int m = grid[0].size();
        int squares = 0;
        int di[] = {0, 0, -1, 1};
        int dj[] = {-1, 1, 0, 0};
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < m; j++) {
                if(grid[i][j] == 1) {
                    squares += 4;

                    for(int k = 0; k < 4; k++) {
                        int ti = i + di[k];
                        int tj = j + dj[k];
                        if(ti >= 0 and ti < n and tj >= 0 and tj < m and grid[ti][tj] == 1) {
                            squares--;
                        }
                    }
                }
               
            }
        }
        return squares;
    }
};