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

代码随想录算法训练营第四十六天 | 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) }
http://www.jsqmd.com/news/94345/

相关文章:

  • AI写论文哪个软件最好?与宏智树AI共舞,毕业从“困局”到“胜局”
  • 完爆ChatGPT!谷歌这招太狠:连你的「阴阳怪气」都能神还原
  • 【限时掌握】农业产量方差分析三步法:R语言快速建模与可视化
  • 【ISSN/ISBN双刊号】第三届电力电子与人工智能国际学术会议(PEAI 2026)
  • Symfony 8 Monolog配置避坑指南:5个常见错误及修复方案
  • 立煌AUO15寸友达液晶屏幕G150XTN03.4工业液晶模组参数查询
  • 牛客网Java面试题总结(12月最新版)
  • buuctf Misc(杂项) 梅花香之苦寒来(图穷匕见)
  • 前端安全问题
  • 开题报告的终极武器!虎贲等考 AI 靠 “学术外挂”,直接破解你的毕业焦虑!
  • 为什么你的医疗数据导入总出错?PHP校验逻辑中这3个盲区必须警惕
  • 基于单片机的智能窗帘的设计
  • Laravel 13发布后,为什么顶尖团队都在改用多模态权限?
  • 开题报告不是 “写” 出来的,是 “搭” 出来的!虎贲等考 AI 就像乐高,把研究框架一块块拼给你看!
  • Java毕设项目:基于springboot停车场车位预约系统(源码+文档,讲解、调试运行,定制等)
  • 网站HTTPS访问实现指南
  • 【普中51单片机开发攻略--基于普中-2普中-3普中-4】-- 第 10 章 蜂鸣器实验
  • AI助手、学伴、还是“外挂”?为你的课程论文加冕,或许只需选对“神队友”
  • Laravel 13事件监听新纪元:如何同时处理HTTP、WebSocket与队列事件?
  • 【GraphQL的PHP错误处理】:为什么99%的开发者都忽略了这4个关键点?
  • 【YOLO-Ultralytics】 【核心引擎】【v8.3.235版本】 模型预测器基类代码predictor.py解析
  • 笔记数据自己管!Joplin加上cpolar让多端同步更安心
  • AI 写论文哪个软件最好?别人还在 “编文献”,虎贲等考 AI 直接把知网链接、Excel 数据和 Python 代码打包塞进你的初稿!
  • Java毕设项目:基于springboot海洋馆预约购票系统的设计与实现基于springboot海洋馆预约系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 【农业物联网PHP设备认证实战】:从零搭建安全可靠的设备接入系统
  • 【低代码PHP组件测试全攻略】:掌握高效编写自动化测试用例的5大核心技巧
  • macOS使用Homebrew+VS Code搭建Python开发环境完整指南
  • GG3M:人工智能时代的文明操作系统——全球治理元心智模型国际商业计划书
  • 【专家 Exclusive】揭秘企业级低代码平台中的PHP属性绑定黑科技
  • GEO服务商深度横评:五大品牌技术路径与实战效果全解析