力扣-图论-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;
    }
}

后言

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

相关推荐
程序员阿明17 分钟前
idea把插件啥的不默认放在C盘
java·ide·intellij-idea
linweidong1 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手1 小时前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom
小玮看世界1 小时前
[Python]OD算法在OD实际运用转化参考清单
开发语言·python·算法
黎阳之光1 小时前
数字孪生赋能全域水网,实现水资源管控与节水降碳双向提升
人工智能·物联网·算法·安全·数字孪生
随意起个昵称1 小时前
【BFS】冰面滑行
算法·宽度优先
ForteScarlet1 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
萧瑟余晖1 小时前
Java深入解析篇六十二之安全机制详解
java·开发语言
xian_wwq2 小时前
【学习笔记】OWASP Agentic 应用安全(二)
笔记·学习·安全·owasp
小刘在重生~2 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存