news 2026/4/18 7:40:53

代码随想录算法训练营第四十六天 | 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/10 20:27:14

为什么Linux常被提权操作?

Linux 能被提权操作的最核心原因&#xff0c;是其权限模型的设计初衷——为了实现最小权限原则与系统管理需求的平衡&#xff1b;而其底层逻辑则是围绕 UID/GID 身份标识、权限位机制、内核态/用户态隔离 三大核心构建的权限管控体系。 简单来说&#xff1a;提权不是漏洞&#…

作者头像 李华
网站建设 2026/4/5 10:39:27

阿里云函数计算 AgentRun:解决企业级 Agent 生产化落地痛点

AI Agent 正从技术概念快步走向生产应用。然而&#xff0c;当开发者试图将原型推向生产环境时&#xff0c;一道巨大的“生产化鸿沟”随之显现&#xff1a;众多开源框架虽提供了强大的“大脑”&#xff0c;却缺失了企业级应用赖以为生的“基础设施”。 开发者实现从“原型”到“…

作者头像 李华
网站建设 2026/4/14 21:17:08

基于单片机的室内温度检测仪的设计与实现

第一章 仪器开发背景与意义 在日常生活与工业生产中&#xff0c;室内温度是影响舒适度、设备运行效率的关键参数——家庭环境需温度异常可能影响居住体验&#xff0c;实验室机房、实验室等场景的温度失衡则可能导致设备故障或实验数据偏差。传统传统的温度检测多依赖传统温度计…

作者头像 李华
网站建设 2026/4/15 6:33:52

基于单片机的智能头盔的设计与实现

第一章 系统开发背景与意义 在摩托车、电动车及骑行运动中&#xff0c;头盔是保障头部安全的核心装备&#xff0c;但传统头盔仅具备物理防护功能&#xff0c;无法应对骑行中的动态风险&#xff08;如碰撞预警、疲劳驾驶、摔倒救援&#xff09;。据统计&#xff0c;约70%的骑行…

作者头像 李华
网站建设 2026/4/10 14:02:43

基于STM32单片机设计的门禁系统

第一章 系统整体架构设计 基于STM32单片机的门禁系统&#xff0c;旨在实现人员身份精准识别、权限管控与安全预警&#xff0c;核心架构分为身份识别模块、核心控制模块、执行模块及报警模块四大单元。身份识别模块负责采集人员身份信息&#xff0c;核心控制模块以STM32单片机为…

作者头像 李华
网站建设 2026/3/27 21:40:54

基于单片机的智能窗帘的设计

第一章 系统整体架构设计 基于单片机的智能窗帘&#xff0c;核心目标是实现自动控制与便捷操作&#xff0c;满足用户多样化场景需求&#xff0c;整体架构分为环境感知模块、核心控制模块、驱动执行模块、人机交互模块四大单元。环境感知模块负责采集光照强度、人体存在等环境信…

作者头像 李华