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

软件开发可以做网站么网站建设的意义和作用

软件开发可以做网站么,网站建设的意义和作用,用墨刀做网站首页,wordpress目录文章的调用双向BFS算法学习 推荐练习题 力扣“127”题:单词接龙 “752”题:打开轮盘锁 这里推荐一篇力扣题解 双向BFS 这里使用打开轮盘锁的题干进行举例: 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’,…

双向BFS算法学习

推荐练习题
力扣“127”题:单词接龙
“752”题:打开轮盘锁
这里推荐一篇力扣题解
双向BFS
这里使用打开轮盘锁的题干进行举例:

你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。

锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。

列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。

字符串 target 代表可以解锁的数字,你需要给出解锁需要的最小旋转次数,如果无论如何不能解锁,返回 -1 。
在这里插入图片描述

分析

首先说明为什么使用双向BFS?
在这里我们可以把起点比做一个圆的圆心,我们使用BFS,就是对这个圆进行向外延伸,当延伸到目标点时,圆的面积就是时间复杂度,而我们采用双向BFS,就是从两
个点作为圆心,再进行延伸,当相交时,两个圆的面积小于只采用一个圆的面积(当目标点离起始点越远越明显)

这里我们与单向BFS的差别主要在下面几点:

  1. 这里有两个起始点,一个还是原来的起点0000,还有一个是我们的目标值,从这两个点开始发散的向四周发散的寻找,所以我们需要创建两个队列和两个保存已经遍历元素的哈希集
  2. 当一个队列的元素在另一个队列里面出现,这时说明两个点之间已经“打通”,找到了最短距离
  3. 这里注意我们尽量每次让两个队列平均的进行添加,这基于BFS的特性
  4. 这里结束循环的条件是两个队列都不为空,因为只要有一个位置空,就说明两点之间不能达到

代码

package Power;import java.util.*;public class doubleBFS {class Solution {String t, s;Set<String> set = new HashSet<>();public int openLock(String[] _ds, String _t) {s = "0000";t = _t;if (s.equals(t)) return 0;for (String d : _ds) set.add(d);if (set.contains(s)) return -1;int ans = bfs();return ans;}int bfs() {// d1 代表从起点 s 开始搜索(正向)// d2 代表从结尾 t 开始搜索(反向)Deque<String> d1 = new ArrayDeque<>(), d2 = new ArrayDeque<>();/** m1 和 m2 分别记录两个方向出现的状态是经过多少次转换而来* e.g.* m1 = {"1000":1} 代表 "1000" 由 s="0000" 旋转 1 次而来* m2 = {"9999":3} 代表 "9999" 由 t="9996" 旋转 3 次而来*/Map<String, Integer> m1 = new HashMap<>(), m2 = new HashMap<>();d1.addLast(s);m1.put(s, 0);d2.addLast(t);m2.put(t, 0);/** 只有两个队列都不空,才有必要继续往下搜索* 如果其中一个队列空了,说明从某个方向搜到底都搜不到该方向的目标节点* e.g.* 例如,如果 d1 为空了,说明从 s 搜索到底都搜索不到 t,反向搜索也没必要进行了*/while (!d1.isEmpty() && !d2.isEmpty()) {int t = -1;if (d1.size() <= d2.size()) {t = update(d1, m1, m2);} else {t = update(d2, m2, m1);}if (t != -1) return t;}return -1;}int update(Deque<String> deque, Map<String, Integer> cur, Map<String, Integer> other) {int m = deque.size();while (m-- > 0) {String poll = deque.pollFirst();char[] pcs = poll.toCharArray();int step = cur.get(poll);// 枚举替换哪个字符for (int i = 0; i < 4; i++) {// 能「正向转」也能「反向转」,这里直接枚举偏移量 [-1,1] 然后跳过 0for (int j = -1; j <= 1; j++) {if (j == 0) continue;// 求得替换字符串 str// 这里使用的方法非常巧妙,把字符为0和9的特殊情况处理了int origin = pcs[i] - '0';// 取模处理9int next = (origin + j) % 10;// 如果为0.0-1为-1,进行处理,变成9if (next == -1) next = 9;char[] clone = pcs.clone();clone[i] = (char)(next + '0');String str = String.valueOf(clone);// 如果死亡数组里面包含,就重新执行循环if (set.contains(str)) continue;// 如果已经遍历过,就重新执行循环if (cur.containsKey(str)) continue;// 如果在「另一方向」找到过,说明找到了最短路,否则加入队列if (other.containsKey(str)) {return step + 1 + other.get(str);} else {deque.addLast(str);// 添加,更新步数cur.put(str, step + 1);}}}}return -1;}}
}
http://www.hrbkazy.com/news/36173.html

相关文章:

  • 北京做网站建设的公司有哪些网址域名ip查询
  • 安阳网站建设优化我国的网络营销公司
  • 三亚今天最新通知贵港网站seo
  • 黄埔企业网站建设淘宝怎么优化关键词步骤
  • 广州微网站建设效果重庆seo哪个强
  • wordpress 百度自然搜索排名优化</a> </li> <li> <a href="/news/36166.html">钢材销售都在哪个网站做网络推广员好做吗</a> </li> <li> <a href="/news/36165.html">网站布局有哪些网上推广平台</a> </li> <li> <a href="/news/36164.html">网站建设 启象科技google谷歌搜索引擎</a> </li> <li> <a href="/news/36163.html">自己怎么做云购网站吗域名搜索</a> </li> <li> <a href="/news/36162.html">网站建站一本通2345网址导航官网下载安装</a> </li> <li> <a href="/news/36161.html">网站程序调试模式怎么做客户管理软件</a> </li> <li> <a href="/news/36160.html">湖北省建设厅信息网站2345网址导航浏览器</a> </li> <li> <a href="/news/36159.html">网站开发多少钱一天是搜索平台</a> </li> <li> <a href="/news/36158.html">哪里可以学做资料员的网站白帽seo是什么</a> </li> <li> <a href="/news/36157.html">东莞网站制作网络建设公司windows优化大师要会员</a> </li> <li> <a href="/news/36156.html">frontpage slideshow wordpress山东seo百度推广</a> </li> <li> <a href="/news/36155.html">宁夏做网站找谁电子商务主要学什么内容</a> </li> <li> <a href="/news/36154.html">自己做的网站服务器在哪里百度开户公司</a> </li> <li> <a href="/news/36153.html">长沙网站维护公司关键词优化到首页怎么做到的</a> </li> <li> <a href="/news/36152.html">做阿里云网站的公司吗佛山做优化的网络公司</a> </li> <li> <a href="/news/36151.html">官方网站建设 都来磐石网络全网推广怎么做</a> </li> <li> <a href="/news/36150.html">石家庄哪里能做门户网站的最近的国内新闻</a> </li> <li> <a href="/news/36148.html">静态网站是什么泉州百度竞价开户</a> </li> <li> <a href="/news/36147.html">快速搭建企业网站seo零基础教学视频</a> </li> <li> <a href="/news/36146.html">南京做电商网站的公司360指数官网</a> </li> <li> <a href="/news/36145.html">响水哪家专业做网站网络查询网站</a> </li> <li> <a href="/news/36144.html">在哪里可以做海外淘宝网站宁波seo网络推广优质团队</a> </li> <li> <a href="/news/36142.html">邢台公司网站建设深圳网站优化网站</a> </li> <li> <a href="/news/36141.html">如何确认建设银行网站不是假的seo有名气的优化公司</a> </li> </div> </article> </main> </div> </div> <aside id="secondary" class="widget-area sidebar"> <div class="widget widget_posts_thumbnail" style="margin-top:6px;"> <h2 class="widget-title">最新文章</h2> <ul> <li class="clear"> <a href="/news/37998.html" rel="bookmark"> <div class="thumbnail-wrap"> <img width="120" height="80" src="/imgs/如何自己做网站腾讯网站宣传方法" alt=" 如何自己做网站腾讯网站宣传方法" /> </div> </a> <div class="entry-wrap"> <a href="/news/37998.html" rel="bookmark"> 如何自己做网站腾讯网站宣传方法</a> <div class="entry-meta">2025/7/16 20:50:52</div></div> </li> <li class="clear"> <a href="/news/37997.html" rel="bookmark"> <div class="thumbnail-wrap"> <img width="120" height="80" src="/imgs/做网站显示不同字体广州网络推广seo" alt=" 做网站显示不同字体广州网络推广seo" /> </div> </a> <div class="entry-wrap"> <a href="/news/37997.html" rel="bookmark"> 做网站显示不同字体广州网络推广seo</a> <div class="entry-meta">2025/7/16 20:50:22</div></div> </li> <li class="clear"> <a href="/news/37996.html" rel="bookmark"> <div class="thumbnail-wrap"> <img width="120" height="80" src="/imgs/网站制作常见的问题汕头网站制作设计" alt=" 网站制作常见的问题汕头网站制作设计" /> </div> </a> <div class="entry-wrap"> <a href="/news/37996.html" rel="bookmark"> 网站制作常见的问题汕头网站制作设计</a> <div class="entry-meta">2025/7/16 20:49:21</div></div> </li> <li class="clear"> <a href="/news/37995.html" rel="bookmark"> <div class="thumbnail-wrap"> <img width="120" height="80" src="/imgs/嘉兴做网站建设的公司百度排名点击器" alt=" 嘉兴做网站建设的公司百度排名点击器" /> </div> </a> <div class="entry-wrap"> <a href="/news/37995.html" rel="bookmark"> 嘉兴做网站建设的公司百度排名点击器</a> <div class="entry-meta">2025/7/16 20:48:50</div></div> </li> <li class="clear"> <a href="/news/37994.html" rel="bookmark"> <div class="thumbnail-wrap"> <img width="120" height="80" src="/imgs/做视频找素材的网站有哪些百度推广代理商查询" alt=" 做视频找素材的网站有哪些百度推广代理商查询" /> </div> </a> <div class="entry-wrap"> <a href="/news/37994.html" rel="bookmark"> 做视频找素材的网站有哪些百度推广代理商查询</a> <div class="entry-meta">2025/7/16 20:48:20</div></div> </li> <li class="clear"> <a href="/news/37993.html" rel="bookmark"> <div class="thumbnail-wrap"> <img width="120" height="80" src="/imgs/盐城做网站的哪家公司好网站怎么优化排名" alt=" 盐城做网站的哪家公司好网站怎么优化排名" /> </div> </a> <div class="entry-wrap"> <a href="/news/37993.html" rel="bookmark"> 盐城做网站的哪家公司好网站怎么优化排名</a> <div class="entry-meta">2025/7/16 20:47:50</div></div> </li> </ul> </div> <div class="leftdiv2"> </div> </aside> </div> <footer id="colophon" class="site-footer"> <div class="clear"></div> <div id="site-bottom" class="clear"> <div class="container"> <div class="menu-m_footer-container"> <ul id="footer-menu" class="footer-nav"> <li> <strong> <a href="/">哈卡滋游介绍</a></strong> </li> <li> <strong> <a href="/">商务合作</a></strong> </li> <li> <strong> <a href="/">免责声明</a></strong> </li> </ul> </div> <div class="site-info"> <p>CopyRight © <a href="/">哈卡滋游</a>版权所有 </p> </div> </div> </div> </footer> </div> <div id="back-top"> <a href="#top" title="返回顶部"> <svg width="38" height="38" viewbox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect width="48" height="48" fill="white" fill-opacity="0.01" /> <path d="M24 44C35.0457 44 44 35.0457 44 24C44 12.9543 35.0457 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 12.9543 44 24 44Z" fill="#3d4de6" stroke="#3d4de6" stroke-width="4" stroke-linejoin="round" /> <path d="M24 33.5V15.5" stroke="#FFF" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" /> <path d="M33 24.5L24 15.5L15 24.5" stroke="#FFF" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" /></svg> </a> </div> <script src='/templates/nzzt/js/common.js'></script> <script> $(function(){ $('.source_url').text('原文地址:https://blog.csdn.net/2403_82385265/article/details/138586655'); }); /*$('.source_url').on("click",function() { window.open('https://blog.csdn.net/2403_82385265/article/details/138586655', '_blank'); });*/ </script> </body> </html>