news 2026/7/7 17:24:25

代码随想录算法训练营第四十三天 | 98. 所有可达路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录算法训练营第四十三天 | 98. 所有可达路径

邻接矩阵easy

package main import ( "fmt" ) var res [][]int var path []int func dfs(graph [][]int, x, n int) { if x == n { tmp := make([]int, len(path)) copy(tmp, path) res = append(res, tmp) return } for i := 1; i <= n; i++ { if graph[x][i] == 1 { path = append(path, i) dfs(graph, i, n) path = path[:len(path)-1] } } } func main() { var n, m int fmt.Scanf("%d %d", &n, &m) graph := make([][]int, n+1) for i := range graph { graph[i] = make([]int, n+1) } for i := 0; i < m; i++ { var s, t int fmt.Scanf("%d %d", &s, &t) graph[s][t] = 1 } path = append(path, 1) dfs(graph, 1, n) if len(res) == 0 { fmt.Println(-1) } else { for _, pa := range res { for i := 0; i < len(pa)-1; i++ { fmt.Print(pa[i], " ") } fmt.Println(pa[len(pa)-1]) } } }

邻接表easy

package main import ( "fmt" ) var res [][]int var path []int func dfs(graph [][]int, x, n int) { if x == n { tmp := make([]int, len(path)) copy(tmp, path) res = append(res, tmp) return } for _, i := range graph[x] { path = append(path, i) dfs(graph, i, n) path = path[:len(path)-1] } } func main() { var n, m int fmt.Scanf("%d %d", &n, &m) graph := make([][]int, n+1) for i := 0; i < m; i++ { var s, t int fmt.Scanf("%d %d", &s, &t) graph[s] = append(graph[s], t) } path = append(path, 1) dfs(graph, 1, n) if len(res) == 0 { fmt.Println(-1) } else { for _, pa := range res { for i := 0; i < len(pa)-1; i++ { fmt.Print(pa[i], " ") } fmt.Println(pa[len(pa)-1]) } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 16:08:49

GBase 8s 中 SYSTIMESTAMP 表达式介绍

在数据库开发中&#xff0c;获取和操作系统时间是一个常见的需求。GBase 8s 提供了 SYSTIMESTAMP 表达式&#xff0c;用于返回数据库系统的当前时间&#xff0c;包括年、月、日、时、分、秒和小数秒。本文将详细介绍 SYSTIMESTAMP 的使用方法、特点及实际应用示例&#xff0c;希…

作者头像 李华
网站建设 2026/7/5 10:56:50

GBase 8a MPP集群不同版本升级简介

南大通用 GBase 8a MPP集群版本有86版本、952版本、953版本。V8512集群不允许直接升级到V95&#xff0c;需先升级到V86后&#xff0c;再从V86升级到V952版。目前不支持从V86版本直接升级到V953版本&#xff0c;需要先升级到V952版本集群后再升级到V953版本集群。升级的整体流程…

作者头像 李华
网站建设 2026/7/6 9:57:11

Cloudpods:开源多云管理平台的完整使用指南

Cloudpods&#xff1a;开源多云管理平台的完整使用指南 【免费下载链接】cloudpods 开源、云原生的多云管理及混合云融合平台 项目地址: https://gitcode.com/yunionio/cloudpods Cloudpods是一个开源的云原生多云管理及混合云融合平台&#xff0c;能够帮助企业统一管理…

作者头像 李华
网站建设 2026/7/7 19:27:00

自抗扰控制(ADRC)车辆轨迹跟踪 自抗扰控制旨在有效地抑制系统中的干扰和扰动,从而实现对系统...

自抗扰控制(ADRC)车辆轨迹跟踪 自抗扰控制旨在有效地抑制系统中的干扰和扰动&#xff0c;从而实现对系统的精确控制&#xff0c;在面对未知或难以建模的扰动时表现出色。 基于二自由度动力学模型和frenet坐标系建立的模型状态空间方程&#xff0c;使用ADRC控制跟踪轨迹&#xf…

作者头像 李华
网站建设 2026/7/8 4:06:55

lambda表达式

定义lambda表达式。方法的组成&#xff0c;参数列表&#xff0c;返回值&#xff0c;方法名&#xff0c;方法体func<>方法类型&#xff0c;函数类型&#xff0c;第一个类型是参数1的类型&#xff0c;第二个类型是参数2的类型&#xff0c;还可写多个类型&#xff0c;但最后…

作者头像 李华
网站建设 2026/7/7 6:04:45

Linux 安全加固:禁用 IPv6 ICMP 重定向

在 Linux 系统安全基线检查中&#xff0c;IPv6 ICMP 重定向是一个常见的中危风险点。如果未禁用&#xff0c;攻击者可能利用该机制进行路由欺骗&#xff0c;导致流量被劫持或篡改。&#x1f50e; 什么是 ICMP 重定向 ICMP 重定向&#xff1a;当路由器发现有更优路径时&#xff…

作者头像 李华