原题地址(简单)

    这题也没啥算法和数据结构,我觉得暴力二层循环就是最好的做法。。。。

    因为时间复杂度不可能小于O(MN) MN分别为长度宽度

    1. class Solution {
    2. public:
    3. int islandPerimeter(vector<vector<int>>& grid) {
    4. if(grid.size() == 0) return 0;
    5. int perimeter = 0, width = grid[0].size(), height = grid.size();
    6. for(int i=0; i<height; i++) {
    7. for(int j=0; j<width; j++){
    8. if(grid[i][j]){
    9. if((j > 0 && !grid[i][j-1]) || j == 0) perimeter++;
    10. if((j < width-1 && !grid[i][j+1]) || j == width-1) perimeter++;
    11. if((i > 0 && !grid[i-1][j]) || i == 0) perimeter++;
    12. if((i < height-1 && !grid[i+1][j]) || i == height-1) perimeter++;
    13. }
    14. }
    15. }
    16. return perimeter;
    17. }
    18. };