BM57 岛屿数量(回溯)

news/2024/7/20 20:55:40 标签: 深度优先, 算法

在这里插入图片描述
在这里插入图片描述
对数组index的判断要放前面,要不然报数组越界异常。

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 判断岛屿数量
     * @param grid char字符型二维数组 
     * @return int整型
     */
    public void dfs(char[][] grid, int i, int j){
        int n = grid.length;
        int m = grid[0].length;

        grid[i][j] = '0';

        if(i - 1 >= 0 && grid[i-1][j] == '1')//上
            dfs(grid, i-1, j);
        if(i + 1 < n && grid[i+1][j] == '1')//下
            dfs(grid, i+1, j);
        if(j - 1 >= 0 && grid[i][j-1] == '1')//左
            dfs(grid, i, j-1);
        if(j + 1 < m && grid[i][j+1] == '1')//右
            dfs(grid, i, j+1);

    }


    public int solve (char[][] grid) {
        // write code here
        int n = grid.length;
        if(n == 0) return 0;
        int m = grid[0].length;

        int count = 0;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                if(grid[i][j] == '1'){
                    count++;
                    dfs(grid, i , j);
                }
            }
        }

        return count;
    }
}

http://www.niftyadmin.cn/n/5474396.html

相关文章

jq的跳转方法有哪些(补)

在jQuery中&#xff0c;可以使用以下方法实现页面跳转&#xff1a; 使用window.location.href进行页面跳转&#xff1a; window.location.href "http://www.example.com";使用window.location.replace()进行页面跳转&#xff1a; window.location.replace("…

利用甘特图实现精细化项目管控

在项目管理中,通过精细化管控,项目经理能够有效规划、监督和协调各项任务,从而最大限度控制风险,优化资源配置,并确保按时、按质、按量完成项目目标。而在众多项目管理工具中,甘特图无疑是实现精细化项目管控的利器。zz-plan 是一个非常好用的在线甘特图制作工具&#xff0c;一…

JAVA集合详细讲解和线程安全

java中的集合总共分为两大类&#xff0c;单列集合collection和双列集合map&#xff0c;常用的&#xff0c;单列集合list、set。 单列集合&#xff1a; list集合&#xff1a;元素可重复&#xff0c;有序。list集合的子类有ArrayList和LinkedList&#xff0c;ArrayList底层是数…

互联网架构实践心得 (六)—给飞机换引擎和安全意识十原则

文章目录 给飞行中的飞机换引擎安全意识十原则开发层面产品层面运维层面给飞行中的飞机换引擎 所谓给飞行中的飞机(或飞驰的汽车)换引擎,说的是我们需要对一个正在飞速发展的系统进行大幅度的架构改造,比如把 All-in-one 的架构改造成微服务架构,尽可能减少或者消除停服的…

算法刷题应用知识补充--搜索与图

这里写目录标题 DFS题结 BFS题结 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 DFS 题 结 BFS 题 结 一级目录 二级目录 二级目录 二级目录 一级目录 二级目录 二级目录 二级目录 一级目录 二级目录 …

寄快递便宜啦!德邦、韵达、京东、圆通等八大品牌快递五折起!

低价服务&#xff0c;为你的快递需求保驾护航。 一、与全网主流快递合作&#xff0c;信赖与质量的共同见证 是一家整合快递、物流、及国际快递资源的综合快递服务平台&#xff0c;通过人工智能比价系统&#xff0c;为个人及企业客户提供市面上优惠的快递价格&#xff0c;目前…

Android Studio学习4——gradle文件

视频讲解 https://developer.android.google.cn/studio/releases/gradle-plugin.htmIl#updating-gradle

NPDP含金量高吗?什么人适合学习NPDP?

省流版&#xff1a;NPDP含金量挺高的&#xff0c;做产品的建议去学习下~ 一、什么是NPDP&#xff1f; NPDP 是产品经理国际资格认证&#xff0c;美国产品开发与管理协会&#xff08;PDMA&#xff09;发起的&#xff0c;是目前国际公认的唯一的新产品开发专业认证&#xff0c;…