Golang | Leetcode Golang题解之第433题最小基因变化

news/2024/9/27 22:09:32 标签: Golang, Leetcode, 题解

题目:

题解

func diffOne(s, t string) (diff bool) {
    for i := range s {
        if s[i] != t[i] {
            if diff {
                return false
            }
            diff = true
        }
    }
    return
}

func minMutation(start, end string, bank []string) int {
    if start == end {
        return 0
    }

    m := len(bank)
    adj := make([][]int, m)
    endIndex := -1
    for i, s := range bank {
        if s == end {
            endIndex = i
        }
        for j := i + 1; j < m; j++ {
            if diffOne(s, bank[j]) {
                adj[i] = append(adj[i], j)
                adj[j] = append(adj[j], i)
            }
        }
    }
    if endIndex == -1 {
        return -1
    }

    var q []int
    vis := make([]bool, m)
    for i, s := range bank {
        if diffOne(start, s) {
            q = append(q, i)
            vis[i] = true
        }
    }
    for step := 1; q != nil; step++ {
        tmp := q
        q = nil
        for _, cur := range tmp {
            if cur == endIndex {
                return step
            }
            for _, nxt := range adj[cur] {
                if !vis[nxt] {
                    vis[nxt] = true
                    q = append(q, nxt)
                }
            }
        }
    }
    return -1
}

http://www.niftyadmin.cn/n/5679666.html

相关文章

IMDB影评情感分析项目

imdb数据集下载地址: http://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz import os import torch from torch import nn import dltools def read_imdb(data_dir, is_train):data, labels = [], []for label in (pos, neg):folder_name = os.path.join(data_di…

日期类的实现- 计算日期之间相差多少天-解决单参数构造

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 这里有坑&#xff0c;这里有坑&#xff0c;这里有坑 首选我们直接上代码&#xff0c;因…

Pymysql cursor.execute 批量执行插入语句踩坑

注意看cursor.execute()的官方注释&#xff1a; 括号里可以不带参数&#xff0c;如果要带参数&#xff0c;必须要是tuple&#xff0c;list 或者dict类型 而在我原来的错误代码里&#xff1a; 我将list类型的values又转换成了str&#xff0c;用逗号连接&#xff0c;传进了execu…

Vue3.X + SpringBoot小程序 | AI大模型项目 | 饮食陪伴官

gitee平台源码 github平台源码 饮食陪伴师是一个管理饮食的原生大模型小程序&#xff0c;优势&#xff1a; 精确营养监控&#xff1a;用户记录饮食后&#xff0c;我们会计算出食用的营养成分与分量&#xff0c;并反馈给用户。饮食建议有效&#xff1a;大模型经过我们训练具备大…

等保2.0测评:安全管理体系建设思路

在实际项目中&#xff0c;很多单位都太不重视等保的安全管理方面&#xff0c;也有很多单位比较重视&#xff0c;但是又不知从何入手。因此本文从等保2.0三级基本要求方面的简单介绍下安全管理体系的建设思路。 一、安全管理建设的重要性 这个很多人可能很难理解&#xff0c;尤…

LLM - 理解 多模态大语言模型(MLLM) 的 幻觉(Hallucination) 与相关技术 (七)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142463789 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 多模态…

在 Gitlab 中使用 ChatGPT 进行 CodeReview

ChatGPT集成Gitlab&#xff0c;实现自动代码审计并进行评论&#xff0c;为软件开发团队提供高效、智能的代码审查解决方案。支持其他模型如通义千问等 自动触发与及时响应&#xff1a;利用Gitlab的Webhook功能&#xff0c;实现代码提交、合并请求和标签创建等事件的自动触发。一…

快消品海外仓应该如何选择合适WMS仓储系统?

快消品的“快”属性天然契合海外仓&#xff0c;快消品大部分是必需品&#xff0c;库存周转快&#xff0c;需保持一定量的安全库存&#xff0c;及时、稳定补货尤为重要&#xff1b;快消品最适合全渠道销售&#xff0c;线上线下等&#xff0c;比较考验备货和统筹能力&#xff1b;…