day72(1.31)——leetcode面试经典150

433. 最小基因变化

433. 最小基因突变

这里我一开始弄错了,我直接一开始就将s标记好,但是我发现这样有的样例是过不了的,因为只有有效突变才能作为标记成已经访问

题目:

题解:

java 复制代码
class Solution {
    public int minMutation(String startGene, String endGene, String[] bank) {
        //先用映射将基因库中的序列赋值,方便寻找
        Map<String, Integer> map = new HashMap<>();
        for(int i=0;i<bank.length;i++) {
            map.put(bank[i], 1);
        } 
        Queue<String> queue = new LinkedList<>();
        queue.offer(startGene);
        int step = 0;
        while(queue.size()>0) {
            int size = queue.size();
            for(int l=0;l<size;l++) {
                String t = queue.poll();
                //判断一下跟最终需要的结果是否一样
                if(t.equals(endGene)) {
                    return step;
                }
                for(int i=0;i<bank.length;i++) {
                    String s = bank[i];
                    if(map.get(s)==0) {
                        continue;
                    }
                    
                    int diff = 0;
                    for(int j=0;j<s.length();j++) {
                        if(s.charAt(j)!=t.charAt(j)) {
                            diff++;
                        }
                    }
                    if(diff==1) {
                        queue.offer(s);
                        //只有有效突变才能将s标记为已访问
                        map.put(s, 0);
                    }
                }
            }
            //进行新增更改次数
            step++;  
        }
        return -1; 
    }
}
相关推荐
晨米酱4 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
CoderYanger4 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
爱学习的执念4 天前
助力金九银十1000道软件测试面试题(功能、接口、自动化、WEB、APP.......)附答案
软件测试·面试
小的~~4 天前
银河麒麟V10 ARM部署TDengine(涛思)工业时序数据库安装与测试
面试·程序员创富
2401_832298104 天前
人机协同:AI时代全新工作与学习范式
职场和发展
童园管理札记4 天前
从政策驱动到课堂落地:2026年“人工智能+教育”全景解读与技术实践指南
人工智能·python·深度学习·职场和发展·学习方法
小刘在重生~4 天前
Oracle_day2 单行函数|组函数|分组|伪列|子查询|分页|多表连接
笔记·oracle·面试
Sam_Deep_Thinking4 天前
关于java final关键字的可见性
java·后端·面试·程序员
yuanxi2004 天前
卡塔尔能源公司LNG扩建项目首条生产线预计明年投运:大客户销售的5个判断
职场和发展·创业创新·学习方法