1.最小基因变化

思路:bfs搜索回溯

python:

class Solution:def minMutation(self, start: str, end: str, bank: List[str]) -> int:library = ['A','C', 'G','T']queue = [start]num = 0vis = set()while queue:size = len(queue)for i in range(size):cur = queue.pop(0)if cur == end:return num                for j in range(len(cur)):for letter in library:temp = cur[:j] + letter +cur[j+1:]if temp in bank and temp not in vis:queue.append(temp)vis.add(temp)num += 1return -1

c++:

class Solution {
public:int minMutation(string start, string end, vector<string>& bank) {string library = "ACGT";queue<string> queue_;queue_.push(start);int num = 0;unordered_set<string> vis;while(!queue_.empty()){int size = queue_.size();for(int i = 0; i < size; i++){string cur = queue_.front();queue_.pop();if(cur == end){return num;}for(int j = 0; j < cur.size(); j++){for(auto letter : library){string temp = cur.substr(0, j) + letter + cur.substr(j+1, cur.size() - j - 1);// cout<<temp<<endl;if(std::find(bank.begin(), bank.end(), temp) != bank.end() && vis.find(temp) == vis.end()){queue_.push(temp);vis.insert(temp);}}}}num ++ ;}return -1;}
};

leetcode BFS(python+c++)相关推荐

  1. leetcode与python进阶学习总结

    转自:leetcode与python进阶学习总结 l1是一个链表型,val是其属性,以下句子意义为如果l1不为空则取l1.val否则取0,节省代码空间,干净利落 x= l1.val if l1 els ...

  2. 二叉树的一些leetcode题目+python(c++)

    二叉树考点主要有: 1.三种遍历方式,以及构造二叉树等: 2.求深度,最长直径,最长路径,公共祖先等等; 3.合并二叉树,翻转二叉树,判断平衡性,对称性等; 4.从前序与中序构造二叉树,中序与后序构造 ...

  3. 每日一道leetcode(python)1823. 找出游戏的获胜者

    每日一道leetcode(python)1823. 找出游戏的获胜者 2021-08-07 共有 n 名小伙伴一起做游戏.小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号.确切地说,从第 i 名 ...

  4. 每日一道leetcode(python)844. 比较含退格的字符串

    每日一道leetcode(python)844. 比较含退格的字符串 2021-09-05 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表 ...

  5. 每日一道leetcode(python)695. 岛屿的最大面积

    每日一道leetcode(python)695. 岛屿的最大面积 2021-08-21 给定一个包含了一些 0 和 1 的非空二维数组 grid .一个 岛屿 是由一些相邻的 1 (代表土地) 构成的 ...

  6. 每日一道leetcode(python)876. 链表的中间结点

    每日一道leetcode(python)876. 链表的中间结点 2021-08-19 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1 ...

  7. 每日一道leetcode(python)77. 组合

    每日一道leetcode(python)77. 组合 2021-08-25 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合.你可以按 任何顺序 返回答案.示例 1:输入 ...

  8. 每日一道leetcode(python)46. 全排列

    每日一道leetcode(python)46. 全排列 2021-08-25 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案.示例 1:输入:nums ...

  9. 每日一道leetcode(python)48. 旋转图像

    每日一道leetcode(python)48. 旋转图像 2021-07-27 给定一个 n × n 的二维矩阵 matrix 表示一个图像.请你将图像顺时针旋转 90 度. 你必须在 原地 旋转图像 ...

最新文章

  1. Windows-Server下加强系统安全性系列之方案【九】
  2. 阿里巴巴发布首个知识引擎研究计划,联合清华浙大等五大高校攻坚AI推理
  3. php爱奇艺筛选标签,三种排序 快速筛选好视频_软件资讯技巧应用-中关村在线
  4. mikechen谈技术人成长的三大原则
  5. yui3 html属性,YUI Rich Editor + invalidHTML + style
  6. 计算机上课创意互动游戏初中,16个课前热身小游戏:让每一堂课都充满新鲜感...
  7. java编程基础码_1.java编程基础
  8. Linux内核深入理解定时器和时间管理(3):tick 广播 框架 和 dyntick
  9. 基于注解的Spring MVC与JPA如何解决实体的延时加载问题
  10. 5.2.1.开启驱动开发之路
  11. 加载heat resource的代码分析
  12. 使用ps制作旧羊皮纸
  13. php安装时候的源是什么,Windows安装源无效怎么办
  14. 推荐三款良心实用软件,让人心动
  15. win7自动关机(win7自动关机)
  16. win10内存占用过高解决方案
  17. 03-图像分割效果评估
  18. 如何正确处理nonce
  19. LeetCode844-比较含退格的字符串
  20. 编程之美 烙饼问题 java实现(检测状态是否出现过)

热门文章

  1. react获取id_解决React应用界面开发常见痛点(一)业务逻辑与UI分离
  2. 数据还是模型?人类知识在深度学习里还有用武之地吗?
  3. 论文浅尝 | 知识图谱的不确定性衡量
  4. paddlenlp 任务清单 中文分词、中文纠错、文本相似度、情感分析、词性标注等一键
  5. 体验paddle2.0rc版本API-Model--实现Mnist数据集模型训练
  6. Android远程服务与本地服务的特点以及功能差异
  7. 工业大数据全景解读和应用案例
  8. 18-ESP8266 SDK开发基础入门篇--TCP 服务器 RTOS版,串口透传,TCP客户端控制LED
  9. Python day7之mysql
  10. 算法训练 Pollution Solution(计算几何)