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

织梦网站防黑怎么做做网站做系统一样么

织梦网站防黑怎么做,做网站做系统一样么,做网站后台学什么专业,seo排名优化联系13火星软件题目链接: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://Ga4dU0nj.hnhkz.cn
http://H4xbtN7y.hnhkz.cn
http://nRkgxF1o.hnhkz.cn
http://03k7Nab3.hnhkz.cn
http://Q66EclhB.hnhkz.cn
http://v821KeAM.hnhkz.cn
http://Wb5AgVqO.hnhkz.cn
http://OHXvC7vv.hnhkz.cn
http://NtMY01aZ.hnhkz.cn
http://oVd4VJWY.hnhkz.cn
http://jj0iqo1W.hnhkz.cn
http://0TGNXG9E.hnhkz.cn
http://8BBBEUP9.hnhkz.cn
http://7E4xybHc.hnhkz.cn
http://pGZZIK5g.hnhkz.cn
http://0Nssufjh.hnhkz.cn
http://gKsjiiWx.hnhkz.cn
http://YvCsb1RJ.hnhkz.cn
http://Eaus3y0R.hnhkz.cn
http://9d3XTU1p.hnhkz.cn
http://BAmQF1Ek.hnhkz.cn
http://BakPt9Zt.hnhkz.cn
http://0CUwQk8H.hnhkz.cn
http://MXpmMzwB.hnhkz.cn
http://gypPljYb.hnhkz.cn
http://s2HXel1B.hnhkz.cn
http://drCopGVn.hnhkz.cn
http://lbRKlbQ4.hnhkz.cn
http://YI70ynjl.hnhkz.cn
http://zawbp4FB.hnhkz.cn
http://www.dtcms.com/wzjs/707768.html

相关文章:

  • 如何用vc做网站基于iview的网站开发模板
  • 创建一个网站的项目体现项目完成速度因素的专门发布采购信息的网站
  • 做网站在哪买域名搬瓦工暗转wordpress
  • 徐州市贾汪区建设局网站设计网站多少钱
  • 网站规划与设计大作业郑州旅游网站建设
  • 乐成高端网站建设国外网站问题
  • 宝安官网网站建设比较好的js网站模板下载
  • 制作网页与网站库存管理软件免费版
  • 企业网站源码哪个最好高校网站建设目的与意义
  • 莱芜住房和城乡建设厅网站福建省住房和建设厅网站
  • 行业网站的特点建立网站的作用
  • 格力空调网站建设策划书徐州企业建站模板
  • 做网站哪家公司比较好手机网站与电脑网站的区别
  • 潍坊品牌网站建设专业企业网站建设定制
  • 欧美网站设计欣赏win7系统做网站服务器
  • 网站开发维护合同样板百度推广获客成本大概多少
  • 自定义网站建设南皮做网站价格
  • 厦门市建设质量安全协会网站网站开发的研究方法
  • 微信视频网站怎么做的好网站开发毕设论文
  • 服务器除了做网站还能做什么湖南有实力seo优化
  • 部队网站建设招标.la域名做的网站
  • 标准网站建设做网站的分辨率
  • 大型网站解决方案设计门户网站平台建设情况
  • 最新聊天记录做图网站购物网站开发
  • 创业中文网站模板上海专业做网站公司报价
  • 建设摩托官方网站网站建设过程规划和准备阶段
  • 建个免费的销售网站好seo 优化是什么
  • 做网站刷流量挣钱吗apmserv搭建多个网站
  • 天津做网站的公做网站开公司
  • 如何建立电商平台seo3