news 2026/4/23 16:39:42

代码随想录算法训练营第四十六天 | 110. 字符串接龙 105.有向图的完全联通 106. 岛屿的周长

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录算法训练营第四十六天 | 110. 字符串接龙 105.有向图的完全联通 106. 岛屿的周长

视频和文字的图 不是广搜过程的图,别看。

写法类型
'a'rune (int32)
"a"string
byte('a')byte (uint8)
s[i]byte
for _, r := range srune
package main import ( "bufio" "fmt" "os" ) func main() { in := bufio.NewReader(os.Stdin) var n int fmt.Fscan(in, &n) var beginStr, endStr string fmt.Fscan(in, &beginStr, &endStr) strSet := make(map[string]struct{}, n) for i := 0; i < n; i++ { var s string fmt.Fscan(in, &s) strSet[s] = struct{}{} } visitMap := make(map[string]int) q := make([]string, 0) q = append(q, beginStr) visitMap[beginStr] = 1 for len(q) != 0 { str := q[0] q = q[1:] for idx, val := range str { bs := []byte(str) for b := 'a'; b <= 'z'; b++ { if val == b { continue } bs[idx] = byte(b) newStr := string(bs) if newStr == endStr { fmt.Println(visitMap[str] + 1) return } if _, ok := strSet[newStr]; ok && visitMap[newStr] == 0 { visitMap[newStr] = visitMap[str] + 1 q = append(q, newStr) } } } } fmt.Println(0) }

注意最后检查是否存在没访问过的结点时,要跳过visited[0]

package main import ( "bufio" "fmt" "os" ) func main() { in := bufio.NewReader(os.Stdin) var n, k int fmt.Fscan(in, &n, &k) gragh := make([][]int, n+1) visited := make([]bool, n+1) for i := range gragh { gragh[i] = make([]int, 0) } for i := 0; i < k; i++ { var s, t int fmt.Fscan(in, &s, &t) gragh[s] = append(gragh[s], t) } visited[1] = true dfs(gragh, visited, 1) for i := 1; i < len(visited); i++ { if !visited[i] { fmt.Println(-1) return } } fmt.Println(1) } func dfs(gragh [][]int, visited []bool, cur int) { for _, next := range gragh[cur] { if !visited[next] { visited[next] = true dfs(gragh, visited, next) } } }

周长是边,不是格子。

package main import ( "bufio" "fmt" "os" ) var dir = [4][2]int{{0, 1}, {1, 0}, {-1, 0}, {0, -1}} func main() { in := bufio.NewReader(os.Stdin) var n, m int fmt.Fscan(in, &n, &m) grid := make([][]int, n) for i := range grid { grid[i] = make([]int, m) for j := range grid[i] { fmt.Fscan(in, &grid[i][j]) } } res := 0 for i := range grid { for j := range grid[i] { if grid[i][j] == 1 { for k := 0; k < 4; k++ { nextI := i + dir[k][0] nextJ := j + dir[k][1] if nextI < 0 || nextI >= len(grid) || nextJ < 0 || nextJ >= len(grid[0]) || grid[nextI][nextJ] == 0 { res++ } } } } } fmt.Println(res) }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 7:50:38

基于FPGA的帧同步设计

帧同步 检测数据流&#xff0c;来代表检测数据是否开始发送了&#xff0c;他的头在哪里&#xff08;几次失锁自己设计&#xff09;在数字通信中&#xff0c;同步码用于指示数据帧的起始位置。由于信道噪声&#xff0c;接收到的同步码可能会出现比特错误。###第一步&#xff1a;…

作者头像 李华
网站建设 2026/4/23 7:49:51

PHP如何为GraphQL实现智能缓存?这7种方法你必须掌握

第一章&#xff1a;PHP如何为GraphQL实现智能缓存&#xff1f;这7种方法你必须掌握在构建高性能的GraphQL API时&#xff0c;缓存策略是提升响应速度和降低服务器负载的关键。PHP作为后端常用语言&#xff0c;结合GraphQL可以实现多种智能缓存机制&#xff0c;有效减少数据库查…

作者头像 李华
网站建设 2026/4/23 7:49:03

找到你的优质素材灵感库:四个实用平台真实体验

做片子找素材这事&#xff0c;我算是有点发言权了。从刚开始到处求资源包的小白&#xff0c;到现在能淡定选择合适平台的老手&#xff0c;最深的体会是&#xff1a;好素材不光是好看&#xff0c;更得用着放心。今天分享四个我工作室常用的素材站&#xff0c;各有各的脾气&#…

作者头像 李华
网站建设 2026/4/23 7:49:24

流水线作业车间:拓纳斯(TUONAS)均匀光设计,减少视觉疲劳提升效率

流水线作业视觉疲劳难题&#xff0c;光环境优化是核心解决方案流水线车间的连续作业特性&#xff0c;要求员工长时间保持视觉专注。若照明存在眩光、明暗不均等问题&#xff0c;易引发眼酸、干涩、注意力不集中等视觉疲劳&#xff0c;直接导致操作失误增加、生产效率下降&#…

作者头像 李华
网站建设 2026/4/23 7:49:34

Java毕设项目:基于springboot的大学生心理健康评估系统基于springboot高校心理健康评测与服务系统(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/23 9:16:11

从零理解R-Python变量共享机制:数据科学家必备的核心技能

第一章&#xff1a;R-Python变量共享机制概述在数据科学与统计计算领域&#xff0c;R 与 Python 的协同工作日益普遍。为了实现跨语言环境的高效协作&#xff0c;变量共享机制成为关键环节。通过特定的接口工具&#xff08;如 reticulate 和 rpy2&#xff09;&#xff0c;开发者…

作者头像 李华