力扣-图论-1【算法学习day.51】

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.省份数量

题目链接: 547. 省份数量 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    int[][] flag;
    int n;
    int[][] isConnected;
    public int findCircleNum(int[][] isConnected) {
        this.isConnected = isConnected;
        n = isConnected.length;
        flag = new int[n][n];
        int ans = 0;
        for(int i = 0;i<n;i++){
           for(int j = i;j<n;j++){
             if(flag[i][j]==0&&(isConnected[i][j]==1|i==j)){
                ans++;
                recursion(i);
             }
           }
        }
        return ans;
    }
    public void recursion(int x){
       for(int i = 0;i<n;i++){
          if(isConnected[x][i]==1&&flag[x][i]==0){
            flag[x][i] = 1;
            flag[i][x] = 1;
            recursion(i);
          }
       }
    }
}

2.寻找图中是否存在路径

题目链接: 1971. 寻找图中是否存在路径 - 力扣(LeetCode)

题面:

代码:

java 复制代码
class Solution {
    List<Integer>[] map;
    boolean[] flag;
    public boolean validPath(int n, int[][] edges, int source, int destination) {
         flag = new boolean[n];
         map = new List[n];
         Arrays.setAll(map,k->new ArrayList<Integer>());
         for(int[] arr:edges){
            int a = arr[0];
            int b = arr[1];
            map[a].add(b);
            map[b].add(a);
         }
         return recursion(source,destination);
    }
    public boolean recursion(int source,int destination){
        if(source==destination){
            return true;
        }
        flag[source] = true;
        for(int b:map[source]){
            if(!flag[b]&&recursion(b,destination)){
                return true;
            }
        }
        return false;
    }
}

后言

上面是力扣图论专题,下一篇是其他的习题,希望有所帮助,一同进步,共勉!

相关推荐
山北雨夜漫步几秒前
机器学习 Day14 XGboost(极端梯度提升树)算法
人工智能·算法·机器学习
到底怎么取名字不会重复3 分钟前
Day10——LeetCode15&560
c++·算法·leetcode·哈希算法·散列表
JAVA百练成神4 分钟前
深度理解spring——BeanFactory的实现
java·后端·spring
兔子蟹子6 分钟前
Java集合框架解析
java·windows·python
DKPT12 分钟前
正则表达式
java·数据库·笔记·学习·正则表达式
南博萬12 分钟前
java将pdf转换成word
java·pdf·word
有什么东东16 分钟前
山东大学软件学院创新项目实训开发日志(20)之中医知识问答自动生成对话标题bug修改
java·vue·bug·springboot
打死不学Java代码24 分钟前
PaginationInnerInterceptor使用(Mybatis-plus分页)
android·java·mybatis
南客先生27 分钟前
海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成
java·clickhouse·elasticsearch·flink·springcloud·shardingjdbc
w236173460133 分钟前
Tomcat:从零理解Java Web应用的“心脏”
java·前端·tomcat