首页 > 其他分享 >力扣中695 岛屿的最大面积

力扣中695 岛屿的最大面积

时间:2023-03-03 16:47:37浏览次数:32  
标签:695 int 岛屿 力扣 grid && new leny

 

 

class Solution {
    public int maxAreaOfIsland(int[][] grid) {
        int count=0;  //岛屿大小
        int tempcount=0;
        
        int[] dx= {0,0,1,-1};//递归 也用2个1*4  [2*5]
        int[] dy= {1,-1,0,0};
        
        int lenx=grid[0].length; //5
        int leny=grid.length;
        int[][] flag=new int[leny][lenx];//自动初始化全0 标记没有是否遍历
        Queue<int[]> queue=new LinkedList<int[]>();
        
        //想从1到最后1遍历 发现会有重复的欸 先不管重复了
        for(int i=0;i<leny;i++) {
            for(int j=0;j<lenx;j++) {
                if(flag[i][j]==1) {
                    continue;
                }
                if((flag[i][j]==0)&&(grid[i][j]==1)) {//没遍历过且是岛屿
                    queue.offer(new int[]{i,j});
                    flag[i][j]=1;
                    tempcount++;
                }
                while(!queue.isEmpty()) {
                    int[] temp= queue.poll();//取出元素
                    for(int k=0;k<4;k++) {
                        int x=temp[0]+dx[k];
                        int y=temp[1]+dy[k];//其实都可以不加上左的了 不行 可能是凹形的
                        if((x>=0)&&(x<leny)&&(y>=0)&&(y<lenx)) {
                            if((flag[x][y]==0)&&(grid[x][y]==1)){
                                queue.offer(new int[]{x,y});
                                flag[x][y]=1;
                                tempcount++;
                            }
                        }
                    }    
                }
                count=Math.max(count, tempcount);
                tempcount=0;
            }
        }
        
        
        return count;
    }
}

 

标签:695,int,岛屿,力扣,grid,&&,new,leny
From: https://www.cnblogs.com/ayuanjiejie/p/17176170.html

相关文章

  • 力扣简733 图像渲染
    深度是不断用新值递归调用且新值执行完执行到底才会做下一个递归 看了一眼什么是深度优先和广度优先然后算是一遍过写的是广度优先对于里面存的(x,y)对,本来是要创个类......
  • 力扣days04 栈与队列
    栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。力扣232.用栈实现队列用两个栈实现队列的......
  • 力扣中567 字符串的排列
    自己写的没写对但是大体有了滑动窗口的思路也不想改了感觉用人家的方法更好这个放在字典里面不好publicstaticvoidmain(String[]args){//TODOAuto-g......
  • 力扣---面试题 05.02. 二进制数转字符串
     二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。示例1:输......
  • 力扣---42. 接雨水
    给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例1:输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,......
  • 力扣---2373. 矩阵中的局部最大值
    给你一个大小为nxn的整数矩阵grid。生成一个大小为 (n-2)x(n-2)的整数矩阵 maxLocal,并满足:maxLocal[i][j]等于grid中以i+1行和j+1列为......
  • 力扣20-有效的括号&力扣22-括号生成
    有效的括号原题链接:https://leetcode.cn/problems/valid-parentheses/题目描述给定一个只包括'(',')','{','}','[',']' 的字符串s,判断字符串是否有效。有效字符串需满足:......
  • 力扣216 组合综合3
    题目:找出所有相加之和为n的k个数的组合,且满足下列条件:只使用数字1到9每个数字最多使用一次返回所有可能的有效组合的列表。该列表不能包含相同的组合两......
  • 力扣77 组合
    题目:给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[......
  • 力扣---33. 搜索旋转排序数组
    整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],...,......