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

代码随想录Day64

98.所有可达路径

题目:98. 所有可达路径 (kamacoder.com)

思路:果断放弃

答案
import java.util.*;public class Main {private static List<List<Integer>> adjList;private static List<List<Integer>> allPaths;private static int target;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();adjList = new ArrayList<>();for (int i = 0; i < n + 1; i++) {adjList.add(new ArrayList<>());}for (int i = 0; i < m; i++) {int s = scanner.nextInt();int t = scanner.nextInt();adjList.get(s).add(t);}target = n;allPaths = new ArrayList<>();List<Integer> currentPath = new ArrayList<>();currentPath.add(1);findAllPaths(1, currentPath);if (allPaths.isEmpty()) {System.out.println("-1");} else {for (List<Integer> path : allPaths) {System.out.println(formatPath(path));}}scanner.close();}private static void findAllPaths(int currentNode, List<Integer> currentPath) {if (currentNode == target) {allPaths.add(new ArrayList<>(currentPath));return;}for (int nextNode : adjList.get(currentNode)) {currentPath.add(nextNode);findAllPaths(nextNode, currentPath);currentPath.remove(currentPath.size() - 1);}}private static String formatPath(List<Integer> path) {StringBuilder sb = new StringBuilder();for (int i = 0; i < path.size(); i++) {sb.append(path.get(i));if (i < path.size() - 1) {sb.append(" ");}}return sb.toString();}
}
小结
  • 注意,要按照题目格式输出
  • 使用回溯算法
    • 确认递归函数,参数
    • 确定终止条件
    • 处理目前搜索节点出发的路径

http://www.lryc.cn/news/385710.html

相关文章:

  • Angular 指令
  • 移动端 UI 风格,书写华丽篇章
  • flutter开发实战-ListWheelScrollView与自定义TimePicker时间选择器
  • stable diffusion 模型和lora融合
  • Spring Boot中的分布式缓存方案
  • AI写作革命:如何用AI工具轻松搞定700+学科的论文?
  • v-for中key的原理以及用法
  • 基于强化学习的目标跟踪论文合集
  • 高质量AIGC/ChatGPT/大模型资料分享
  • 使用Python进行Socket接口测试
  • C++编程逻辑讲解step by step:存折和信用卡类。
  • 为什么说BIM在机电安装行业是刚需?3D开发工具HOOPS如何促进BIM发展?
  • SQLite:一个极简使用教程
  • 酒水公司网站品牌建设宣传如何进行
  • 【高级篇】InnoDB引擎深入:核心机制与实战优化(十五)
  • 打造安全的Linux环境:关键配置指南
  • 什么是WABF验证?
  • CSS3 分页
  • QWebChannel实现与JS的交互
  • 【漏洞复现】电信网关配置管理系统——命令执行
  • 排序算法。
  • 告别 “屎山” 代码,务必掌握这14 个 SpringBoot 优化小妙招
  • 测量无人船作业流程是怎样的?
  • 四川赤橙宏海商务信息咨询有限公司抖音开店靠谱吗?
  • 解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
  • 【笔记】echarts图表的缩放和鼠标滚动冲突的处理解决方案
  • 代码随想录训练营Day51
  • C#上位机与PLC
  • CVE-2018-8120漏洞提权:Windows 7的安全剖析与实战应用
  • Python-正则表达式