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

后言

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

相关推荐
天外来鹿9 分钟前
Map/Set/WeakMap/WeakSet学习笔记
前端·javascript·笔记·学习
放下华子我只抽RuiKe516 分钟前
AI大模型开发-实战精讲:从零构建 RFM 会员价值模型(进阶挑战版)
人工智能·深度学习·算法·机器学习·数据挖掘·数据分析·聚类
Nontee17 分钟前
Leetcode Top100答案和解释 -- Python版本(链表)
算法·leetcode·链表
峥嵘life18 分钟前
Android16 【GTS】 GtsDevicePolicyTestCases 测试存在Failed项
android·linux·学习
0和1的舞者30 分钟前
高并发论坛系统:单元测试 + 接口自动化 + 性能测试 + CI/CD 全链路测试报告
java·测试开发·测试工具·jmeter·pytest·测试·测试报告
leixj02541 分钟前
SVN学习笔记
笔记·学习·svn
空空kkk1 小时前
Java基础——代理
java·开发语言
野生技术架构师1 小时前
互联网大厂必备 Java 面试八股文真题解析
java·开发语言·面试
Rsun045511 小时前
synchronized关键字的底层实现
java
毕设源码_廖学姐1 小时前
计算机毕业设计springboot古诗词学习App 基于SpringBoot的中华经典诗文数字化研习平台 SpringBoot框架下的传统诗词文化移动学习系统
spring boot·学习·课程设计