首页 > 其他分享 >463. 岛屿的周长(leetcode)

463. 岛屿的周长(leetcode)

时间:2024-10-07 17:43:48浏览次数:1  
标签:周长 int 463 ++ grid new leetcode

https://leetcode.cn/problems/island-perimeter/description/

思路:遍历岛屿,一旦遍历到边界或者水则周长++

class Solution {
    int res;
    boolean[][] vis;
    int[][] grid;
    int[] dx=new int[]{0,1,0,-1};
    int[] dy=new int[]{1,0,-1,0};
    int n;
    int m;
    public int islandPerimeter(int[][] grid) {
        n=grid.length;
        m=grid[0].length;
        this.grid=grid;
        vis=new boolean[n][m];
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
            {
                if(grid[i][j]==1)
                {
                    dfs(i,j);
                    return res;
                }

            }
        return 0;
    }

    void dfs(int x,int y)
    {
        vis[x][y]=true;
        for(int i=0;i<4;i++)
        {
            int a=x+dx[i],b=y+dy[i];
            if(a<0 || b<0 || a>=n || b>=m || grid[a][b]==0)
            {
                // 遍历到边界或者水都是 周长++
                res++;
                continue;
            }
            if(a>=0 && b>=0 && a<n && b<m && vis[a][b]==false && grid[a][b]==1)
            {
                dfs(a,b);
            }
        }
    }
}

 

标签:周长,int,463,++,grid,new,leetcode
From: https://www.cnblogs.com/lxl-233/p/18450372

相关文章

  • Day 28 动态规划part01| LeetCode 509.斐波那契数,70.爬楼梯,746.使用最小花费爬楼梯
    理论基础包含题目类别:基础类(斐波那契、爬楼梯)、背包问题、打家劫舍、股票问题、子序列问题解题关键DP数组定义以及下标的含义递推公式DP数组如何初始化遍历顺序打印DP数组509.斐波那契数509.斐波那契数classSolution{publicintfib(intn){......
  • Day 24 贪心算法part02| LeetCode 122.买卖股票的最佳时机II,55.跳跃游戏,45.跳跃游戏II
    122.买卖股票的最佳时机II局部最优:每天的正利润全局最优:每天的正利润之和121.买卖股票的最佳时机classSolution{publicintmaxProfit(int[]prices){intres=0;for(inti=1;i<prices.length;i++){i......
  • Leetcode 10. 正则表达式匹配
    1.题目基本信息1.1.题目描述给你一个字符串s和一个字符规律p,请你来实现一个支持‘.’和‘*’的正则表达式匹配。‘.’匹配任意单个字符‘*’匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。1.2.题目地址https://leetcode.c......
  • 平面最近点对 & 最小周长三角形 & 曼哈顿距离最近
    Statement求平面最近点对的距离,距离定义为欧几里德距离。Solution考虑按\(x\)排序,分治计算先往左右递归,设得到的答案为\(d\),当前算跨过中点的答案,那么答案\(\ged\)的点对可以不用枚举设中点为\(m\)对\(i\in[l..m]\),\(x_i\lex_m-d\)的不用枚举;对\(j\in[m+1..r]\)......
  • 684. 冗余连接(leetcode)
    https://leetcode.cn/problems/redundant-connection/classSolution{publicint[]findRedundantConnection(int[][]edges){//思路:遍历边,不断的加入相连的点到集合中,直到遍历到同在一集合的两个顶点位置,这个边就可以是答案init(edges.length);......
  • 547. 省份数量(leetcode)
    https://leetcode.cn/problems/number-of-provinces/并查集模版题classSolution{int[]p;voidinit(intn){p=newint[n];for(inti=0;i<n;i++)p[i]=i;}intfind(intx){returnx==p[x]?x:(p[x]=find(p[x]));......
  • LeetCode hot100-二叉树篇思路总结
    跌跌撞撞看代码随想录看leetcode官方题解,终于写完了hot100的二叉树部分。这是我第一次学习如何正式的用java去写一个二叉树首先在自己的编译器里定义一个TreeNode类,以便于后面刷题的时候复用publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;......
  • Leetcode 1802. 有界数组中指定下标处的最大值
    1.题目基本信息1.1.题目描述给你三个正整数n、index和maxSum。你需要构造一个同时满足下述所有条件的数组nums(下标从0开始计数):nums.length==nnums[i]是正整数,其中0<=i<nabs(nums[i]–nums[i+1])<=1,其中0<=i<n-1nums中所有元素之和不超过max......
  • Leetcode 1631. 最小体力消耗路径
    1.题目基本信息1.1.题目描述你准备参加一场远足活动。给你一个二维rowsxcolumns的地图heights,其中heights[row][col]表示格子(row,col)的高度。一开始你在最左上角的格子(0,0),且你希望去最右下角的格子(rows-1,columns-1)(注意下标从0开始编号)。你每次可以往......
  • Leetcode 1011. 在 D 天内送达包裹的能力
    1.题目基本信息1.1.题目描述传送带上的包裹必须在days天内从一个港口运送到另一个港口。传送带上的第i个包裹的重量为weights[i]。每一天,我们都会按给出重量(weights)的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在days天内将传送带上的所......