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

织梦网站防黑怎么做论坛型网站 建站

织梦网站防黑怎么做,论坛型网站 建站,如何做电影网站狼视听,100款软件app免费下载大全题目链接:433. 最小基因变化 - 力扣(LeetCode) 基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 A、C、G 和 T 之一。 假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个…

题目链接:433. 最小基因变化 - 力扣(LeetCode)

基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 'A''C''G' 和 'T' 之一。

假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。

  • 例如,"AACCGGTT" --> "AACCGGTA" 就是一次基因变化。

另有一个基因库 bank 记录了所有有效的基因变化,只有基因库中的基因才是有效的基因序列。(变化后的基因必须位于基因库 bank 中)

给你两个基因序列 start 和 end ,以及一个基因库 bank ,请你找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1 。

注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。

示例 1:

输入:start = "AACCGGTT", end = "AACCGGTA", bank = ["AACCGGTA"]
输出:1

示例 2:

输入:start = "AACCGGTT", end = "AAACGGTA", bank = ["AACCGGTA","AACCGCTA","AAACGGTA"]
输出:2

示例 3:

输入:start = "AAAAACCC", end = "AACCCCCC", bank = ["AAAACCCC","AAACCCCC","AACCCCCC"]
输出:3

提示:

  • start.length == 8
  • end.length == 8
  • 0 <= bank.length <= 10
  • bank[i].length == 8
  • startend 和 bank[i] 仅由字符 ['A', 'C', 'G', 'T'] 组成

解法:

算法思路:

如果将「每次字符串的变换」抽象成图中的「两个顶点和⼀条边」的话,问题就变成了「边权为 1 的最短路问题」。

因此,从起始的字符串开始,来⼀次 bfs 即可

class Solution {public int minMutation(String startGene, String endGene, String[] bank) {Set<String> vis=new HashSet<>();//标记已经被搜索过的状态Set<String> hash=new HashSet<>();//标记基因库里的字符串for(String s:bank){hash.add(s);}char[] change={'A','C','G','T'};if(startGene.equals(endGene)) return 0;if(!hash.contains(endGene)) return -1;Queue<String> q=new LinkedList<>();q.add(startGene);hash.add(startGene);int step=0;while(!q.isEmpty()){step++;int sz=q.size();while(sz--!=0){String t=q.poll();for(int i=0;i<8;i++){char[] tmp=t.toCharArray();//将其转为字符数组for(int j=0;j<4;j++){tmp[i]=change[j];String next=new String(tmp);//将其友还原为字符串if(hash.contains(next)&&!vis.contains(next)){if(next.equals(endGene)) return step;q.add(next);vis.add(next);}}}}}return -1;}
}

题目链接:1926. 迷宫中离入口最近的出口 - 力扣(LeetCode)

给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 '.' 表示)和墙(用 '+' 表示)。同时给你迷宫的入口 entrance ,用 entrance = [entrancerow, entrancecol] 表示你一开始所在格子的行和列。

每一步操作,你可以往  或者  移动一个格子。你不能进入墙所在的格子,你也不能离开迷宫。你的目标是找到离 entrance 最近 的出口。出口 的含义是 maze 边界 上的 空格子entrance 格子 不算 出口。

请你返回从 entrance 到最近出口的最短路径的 步数 ,如果不存在这样的路径,请你返回 -1 。

示例 1:

输入:maze = [["+","+",".","+"],[".",".",".","+"],["+","+","+","."]], entrance = [1,2]
输出:1
解释:总共有 3 个出口,分别位于 (1,0),(0,2) 和 (2,3) 。
一开始,你在入口格子 (1,2) 处。
- 你可以往左移动 2 步到达 (1,0) 。
- 你可以往上移动 1 步到达 (0,2) 。
从入口处没法到达 (2,3) 。
所以,最近的出口是 (0,2) ,距离为 1 步。

示例 2:

输入:maze = [["+","+","+"],[".",".","."],["+","+","+"]], entrance = [1,0]
输出:2
解释:迷宫中只有 1 个出口,在 (1,2) 处。
(1,0) 不算出口,因为它是入口格子。
初始时,你在入口与格子 (1,0) 处。
- 你可以往右移动 2 步到达 (1,2) 处。
所以,最近的出口为 (1,2) ,距离为 2 步。

示例 3:

输入:maze = [[".","+"]], entrance = [0,0]
输出:-1
解释:这个迷宫中没有出口。

提示:

  • maze.length == m
  • maze[i].length == n
  • 1 <= m, n <= 100
  • maze[i][j] 要么是 '.' ,要么是 '+' 。
  • entrance.length == 2
  • 0 <= entrancerow < m
  • 0 <= entrancecol < n
  • entrance 一定是空格子。

解法(bfs 求最短路):

算法思路:

利⽤层序遍历来解决迷宫问题,是最经典的做法。

我们可以从起点开始层序遍历(利用堆),并且在遍历的过程中记录当前遍历的层数。这样就能在找到出⼝的时候,得到起点到出⼝的最短距离。

class Solution {int[] dx={0,0,-1,1};int[] dy={-1,1,0,0};int m,n;public int nearestExit(char[][] maze, int[] entrance) {m=maze.length;n=maze[0].length;boolean[][] vis=new boolean[m][n];Queue<int[]> q=new LinkedList<>();q.add(new int[]{entrance[0],entrance[1]});vis[entrance[0]][entrance[1]]=true;int step=0;while(!q.isEmpty()){step++;int sz=q.size();for(int i=0;i<sz;i++){int[] t=q.poll();int a=t[0],b=t[1];for(int j=0;j<4;j++){int x=a+dx[j],y=b+dy[j];if(x>=0&&x<m&&y>=0&&y<n&&maze[x][y]=='.'&&!vis[x][y]){//判断是否已经走出出口if(x==0||x==m-1||y==0||y==n-1){return step;}q.add(new int[]{x,y});vis[x][y]=true;}}}}return -1;}
}

http://www.dtcms.com/wzjs/547208.html

相关文章:

  • 教务处网站建设要求快站网如何开始建站
  • 福州 网站建设如何自己创作一个游戏
  • 网站建设属于什么经营范围十堰建设银行官方网站
  • html网站开发心得沈阳有做网站的吗
  • 网站logo设计在线生成英语课件做的好的网站
  • 在线搭建网站wordpress 评论群发
  • 合肥浦发建设集团网站西安网站开发多少钱
  • 网站开发一定要用框架嘛珠海网站推广优化
  • wordpress 网站建设中中国正式宣布出兵
  • 如何与老板谈网站建设wordpress自建主题
  • 曲靖做网站建设的公司姜堰住房和城乡建设厅网站首页
  • 网站建设公司的名字没有外贸网站 如果做外贸
  • 网站建设多少钱企业网络方案的规划和设计
  • 中国建设银行手机银行下载官方网站iis网站数据库失败
  • 网站开发方案ppt做网站分辨率修改
  • 大量网站开发视频 文档VIP资源苏州网站设计哪家公司好
  • 学院网站建设工作总结个人博客系统wordpress
  • 公司网站建设建议书网站后端性能优化措施
  • 网站顶部地图代码怎么做找一个网站做搜索引擎分析
  • 合规部对于网站建设的意见南阳网站怎么推广
  • 网站店招用什么软件做的wordpress打不开仪表盘
  • 万江网站建设公司内蒙古住房和城乡建设厅网站
  • 北京管庄网站建设公司网站建立公司
  • 网站开发主要框架 后端杭州设计公司招聘
  • 乐清高端网站建设二级域名网站有哪些
  • 中英文网站源码ps做的网站
  • 养老院网站建设方案曲靖网站建设dodoco
  • 网站后台怎么做qq群自动加西安看个号网络科技有限公司
  • 做数学ppt工具的网站全国村级网站建设
  • 海外 推广网站怀化seo推广