当前位置: 首页 > news >正文

资讯网站模版乔拓云智能建站平台

资讯网站模版,乔拓云智能建站平台,聊城做wap网站公司,网站让图片充满屏幕怎么做day01 图论part01 今日任务:图论理论基础/所有可到达的路径 代码随想录图论视频部分还没更新 https://programmercarl.com/kamacoder/图论理论基础.html#图的基本概念 day01 所有可达路径 邻接矩阵 import java.util.Scanner;import java.util.List;import java.util.ArrayL…
day01 图论part01 
今日任务:图论理论基础/所有可到达的路径
代码随想录图论视频部分还没更新
https://programmercarl.com/kamacoder/图论理论基础.html#图的基本概念

day01

所有可达路径

邻接矩阵

 import java.util.Scanner;import java.util.List;import java.util.ArrayList;​public class Main{static List<List<Integer>> result = new ArrayList<>();static List<Integer> path = new ArrayList<>();public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int[][] graph = new int[n + 1][n + 1];for(int i = 0; i < m; i++){graph[sc.nextInt()][sc.nextInt()] = 1;}path.add(1); //先加一个节点dfs(graph, 1, n); if (result.isEmpty()) System.out.println(-1);for(List<Integer> pa : result){for (int i = 0; i < pa.size() - 1; i++) {System.out.print(pa.get(i) + " ");}System.out.println(pa.get(pa.size() - 1));} }private static void dfs(int[][] graph, int x, int n){//n就是结束节点if(x == n){result.add(new ArrayList(path));return;}for(int i = 1; i <= n; i++){if (graph[x][i] == 1) { path.add(i); dfs(graph, i, n); path.remove(path.size() - 1); }}return;}}

邻接表

 //感觉graph不用LinkedList而是直接用ArrayList也可以,因为这个场景下不涉及什么增删改而基本都是访问import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Scanner;​public class Main {static List<List<Integer>> result = new ArrayList<>(); // 收集符合条件的路径static List<Integer> path = new ArrayList<>(); // 1节点到终点的路径​public static void dfs(List<LinkedList<Integer>> graph, int x, int n) {if (x == n) { // 找到符合条件的一条路径result.add(new ArrayList<>(path));return;}for (int i : graph.get(x)) { // 找到 x指向的节点path.add(i); // 遍历到的节点加入到路径中来dfs(graph, i, n); // 进入下一层递归path.remove(path.size() - 1); // 回溯,撤销本节点}}​public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();​// 节点编号从1到n,所以申请 n+1 这么大的数组List<LinkedList<Integer>> graph = new ArrayList<>();for (int i = 0; i <= n; i++) {graph.add(new LinkedList<>());}​while (m-- > 0) {int s = scanner.nextInt();int t = scanner.nextInt();// 使用邻接表表示 s -> t 是相连的graph.get(s).add(t);}​path.add(1); // 无论什么路径已经是从1节点出发dfs(graph, 1, n); // 开始遍历​// 输出结果if (result.isEmpty()) System.out.println(-1);for (List<Integer> pa : result) {for (int i = 0; i < pa.size() - 1; i++) {System.out.print(pa.get(i) + " ");}System.out.println(pa.get(pa.size() - 1));}}}

感谢大佬分享:

代码随想录算法训练营第五十天|Day50 图论_本关任务:创建邻接表存储的无向图,并输出图的邻接表。-CSDN博客

http://www.shuangfujiaoyu.com/news/59478.html

相关文章:

  • 自己怎么做搬家网站外链代发免费
  • 想要找个网站做环评公示网络推广员工资多少钱
  • 潍坊网站制作培训网站建设
  • 门户网站开发用什么框架好国家再就业免费培训网
  • 网站空间建设百度营销推广
  • 青岛网站建设方案书市场营销分析案例
  • 注册深圳公司费用优化设计三年级下册数学答案
  • 个性网站建设百度竞价托管哪家好
  • 公司画册设计网站电商seo是什么
  • 广州wap网站制作百度推广平台首页
  • 石家庄 网站 科技app推广注册从哪里接单
  • 青州做网站的网络公司互联网营销推广方案
  • 网站建设推荐网友情链接是什么意思
  • wordpress 经常打不开广州:推动优化防控措施落
  • 手机产品展示网站模板代运营公司可靠吗
  • 湖北省住房和城乡建设厅网站的公示公告无货源电商怎么做
  • 做电影网站需要用什么空间seo实战培训费用
  • qq怎么做网站客服东莞百度seo排名
  • 网站设计的公司企业邮箱石家庄今日头条新闻
  • 怎样看网站是谁做的柏乡seo快排优化
  • 一个网站做网站地图的目的网络推广工作内容怎么写
  • 论坛网站文本抓取怎么做自媒体代运营
  • 网站 需求分析软文发布平台与板块
  • 赌博网站做维护犯罪上海seo服务外包公司
  • 装饰公司资质办理武汉做seo
  • 苹果手机做网站服务器德阳seo
  • 专业北京网站建设公司哪家好全网营销系统是干什么的
  • 在建项目人员查询网站网页搜索优化
  • 响应式网站尺寸节点晚上网站推广软件免费版
  • 重庆整合营销网站建设高德北斗导航