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

东莞做网站设计制作服装网站策划设计

东莞做网站设计制作,服装网站策划设计,网站开发岗位就业分析,访问网站人多的时候很慢是服务器问题还是带宽总结leetcode75中的图深度优先搜索算法题解题思路。 上一篇#xff1a;力扣75——二叉搜索树 力扣75——图深度优先搜索 1 钥匙和房间2 省份数量3 重新规划路线4 除法求值1-4 解题总结 1 钥匙和房间 题目#xff1a; 有 n 个房间#xff0c;房间按从 0 到 n - 1 编号。最初…总结leetcode75中的图深度优先搜索算法题解题思路。 上一篇力扣75——二叉搜索树 力扣75——图深度优先搜索 1 钥匙和房间2 省份数量3 重新规划路线4 除法求值1-4 解题总结 1 钥匙和房间 题目 有 n 个房间房间按从 0 到 n - 1 编号。最初除 0 号房间外的其余所有房间都被锁住。 你的目标是进入所有的房间。然而你不能在没有获得钥匙的时候进入锁住的房间。当你进入一个房间你可能会在里面找到一套不同的钥匙每把钥匙上都有对应的房间号 即表示钥匙可以打开的房间。你可以拿上所有钥匙去解锁其他房间。给你一个数组 rooms 其中 rooms[i] 是你进入 i 号房间可以获得的钥匙集合。如果能进入 所有 房间返回 true否则返回 false。题解 我的方法广度优先搜索。进入一个房间t拿到里面的钥匙tmp然后把钥匙tmp压入队列q中。while循环从队列q拿钥匙直到q空了为止。最后检查所有房间visit是否都被访问。 官方代码深度优先搜索。利用递归函数dfs进入一个房间拿到钥匙再用for循环调用dfs函数。 class Solution { public:bool canVisitAllRooms(vectorvectorint rooms) {int numRooms rooms.size();vectorint visit(numRooms,0);visit[0] 1;vectorint tmp;queueint q;q.push(0);while (!q.empty()) {tmp rooms[q.front()];q.pop();if (!tmp.empty()) {for (int t : tmp) {if (visit[t] 1)continue;q.push(t);visit[t] 1;}}}for (int v : visit) {if (v 0) return false;}return true;} }; //官方的代码更简洁合理 /* class Solution { public:vectorint vis;int num;void dfs(vectorvectorint rooms, int x) {vis[x] true;num;for (auto it : rooms[x]) {if (!vis[it]) {dfs(rooms, it);}}}bool canVisitAllRooms(vectorvectorint rooms) {int n rooms.size();num 0;vis.resize(n);dfs(rooms, 0);return num n;} }; */2 省份数量 题目 有 n 个城市其中一些彼此相连另一些没有相连。如果城市 a 与城市 b 直接相连 且城市 b 与城市 c 直接相连那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected 其中 isConnected[i][j] 1 表示第 i 个城市和 第 j 个城市直接相连而 isConnected[i][j] 0 表示二者不直接相连。返回矩阵中 省份 的数量。题解 深度优先搜索。for遍历每个城市用递归函数dfs找到所有与当前城市i直接或间接相连的城市用visit来标记已经搜索过的城市。 class Solution { public:int findCircleNum(vectorvectorint isConnected) {int nums 0, nC isConnected.size();vectorint visit(nC, 0);for (int i 0; i nC; i) {if (visit[i] 0) {nums;dfs(isConnected, visit, i);}}return nums;}void dfs(vectorvectorint isConnected,vectorint visit,int i) {visit[i] 1;for (int j 0; j isConnected.size(); j) {if (isConnected[i][j] 1 visit[j] 0) {dfs(isConnected, visit, j);}}} };3 重新规划路线 题目 n 座城市从 0 到 n-1 编号其间共有 n-1 条路线。因此要想在两座不同城市之间旅行只有 唯一一条路线可供选择路线网形成一颗树。去年交通运输部决定重新规划路线以改变交通 拥堵的状况。路线用 connections 表示其中 connections[i] [a, b] 表示从城市 a 到 b 的一条有向 路线。今年城市 0 将会举办一场大型比赛很多游客都想前往城市 0 。 请你帮助重新规划路线方向使每个城市都可以访问城市 0 。返回需要变更方向的最小路线数。 题目数据 保证 每个城市在重新规划路线方向后都能到达城市 0 。题解 广度优先搜索。目的是将所有路线的方向都朝着城市0所以遍历所有与城市0直接相连的城市然后对这每一个相连的城市进行广度优先搜索更改那些方向错误的路线。具体的过程在代码中有注释。 class Solution { public:int minReorder(int n, vectorvectorint connections) {vectorvectorint conn_idx(n, vectorint());//这里使用了类似于邻接表的方法将和节点有关的连接的id序号加入到对应的向量中//这样在后面遍历的时候只要查找connections里面对应的id即可//要注意这里连接两端都加入了连接的序号for (int i 0; i connections.size(); i) {conn_idx[connections[i][0]].push_back(i);conn_idx[connections[i][1]].push_back(i);}vectorbool vi(connections.size(), false);//此处标志的是某条边是否被访问过而不是某个点是否被访问过int ans 0;queueint que;que.push(0);while (!que.empty()) {auto q que.front();que.pop();//这个循环是对和节点q相关的连接进行遍历通过上面存储的连接的id进行遍历for (auto idx : conn_idx[q]) {if (vi[idx]) continue;vi[idx] true;int a connections[idx][0];//连接的起始int b connections[idx][1];//连接的终点ans (a q);//如果当前点是出的那么要修改为入ansa (a q) ? b : a;que.push(a);}}return ans;} };4 除法求值 题目 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示 单个变量的字符串。 另有一些以数组 queries 表示的问题其中 queries[j] [Cj, Dj] 表示第 j 个问题请你根 据已知条件找出 Cj / Dj ? 的结果作为答案。返回 所有问题的答案 。如果存在某个无法确定的答案则用 -1.0 替代这个答案。如果问题中出现 了给定的已知条件中没有出现的字符串也需要用 -1.0 替代这个答案。注意输入总是有效的。你可以假设除法运算中不会出现除数为 0 的情况且不存在任何矛盾的结果。 注意未在等式列表中出现的变量是未定义的因此无法确定它们的答案。题解 并查集。 1 先定义1个unordered_map类型的parent它记录了一个数的被除数被除数的被除数是它自己。 2 再定义1个unordered_map类型的mp记录1个数除被除数得到的值。 3 接着定义函数find()该函数可以找到一个数的祖先。在这个过程中如果发现一个数的祖先跟它隔了2代或更多代就递归进行压缩并修改对应的mp值。 4 然后通过for循环遍历equations将所以除法公式及其结果记录好。 5 最后计算queries中的问题。如果被除数或除数不存在于parent中则无法求解如果除数和被除数的祖先不是同一个也无法求解如果除数和被除数是同一个祖先则直接用它们的mp值做除法即可。 class Solution { public:unordered_mapstring, string parent;unordered_mapstring, double mp;string find(string x){if(parent[x] x) return x;string px parent[x];string res parent[x] find(parent[x]); mp[x] * mp[px];return res;}vectordouble calcEquation(vectorvectorstring equations, vectordouble values, vectorvectorstring queries) {int n equations.size();for(int i 0; i n; i ){string a equations[i][0], b equations[i][1];double v values[i];if(parent.find(a) parent.end() parent.find(b) parent.end()){parent[a] a; parent[b] a;mp[b] v, mp[a] 1.0;}else if(parent.find(a) parent.end()){parent[a] a; string pb find(b);mp[a] 1.0;mp[pb] v / mp[b];parent[pb] a;}else if(parent.find(b) parent.end()){parent[b] a;mp[b] v;}else{string pa find(a), pb find(b);if(pa pb) continue;parent[pb] pa;mp[pb] mp[a] * v / mp[b];} }vectordouble res;for(auto item : queries){string a item[0], b item[1];if(parent.find(a) parent.end() || parent.find(b) parent.end()) res.push_back(-1.0);else{string pa find(a), pb find(b);if(pa ! pb) res.push_back(-1.0);else res.push_back(mp[b] / mp[a]);}}return res;} };1-4 解题总结 a 题目类型总结 题目1从1个节点出发是否可以到达所有节点。题目2所有节点构成几个连通域。题目3从任意节点出发是否可以到达某个节点。题目4节点1是否可以到达节点2。 b 题目1和题目3本质上是一样的只是边的方向相反了而已。他们既可以使用深度优先搜索也可以使用广度优先搜索。 c 题目2既可以使用深度优先搜索也可以使用广度优先搜索。 d 题目4是检查两个点之间是否连通所以用深度优先搜索更合适。 e 这些题目不限制是否会重复经过某个节点只考虑哪些节点是相通的。
文章转载自:
http://www.morning.crrjg.cn.gov.cn.crrjg.cn
http://www.morning.3dcb8231.cn.gov.cn.3dcb8231.cn
http://www.morning.qtfss.cn.gov.cn.qtfss.cn
http://www.morning.lqjpb.cn.gov.cn.lqjpb.cn
http://www.morning.mooncore.cn.gov.cn.mooncore.cn
http://www.morning.lndongguan.com.gov.cn.lndongguan.com
http://www.morning.gthwz.cn.gov.cn.gthwz.cn
http://www.morning.jhrlk.cn.gov.cn.jhrlk.cn
http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn
http://www.morning.ybnzn.cn.gov.cn.ybnzn.cn
http://www.morning.xczyj.cn.gov.cn.xczyj.cn
http://www.morning.skrh.cn.gov.cn.skrh.cn
http://www.morning.wdshp.cn.gov.cn.wdshp.cn
http://www.morning.nwtmy.cn.gov.cn.nwtmy.cn
http://www.morning.rfrx.cn.gov.cn.rfrx.cn
http://www.morning.qpqwb.cn.gov.cn.qpqwb.cn
http://www.morning.rfmzc.cn.gov.cn.rfmzc.cn
http://www.morning.yodajy.cn.gov.cn.yodajy.cn
http://www.morning.mrncd.cn.gov.cn.mrncd.cn
http://www.morning.aa1585.com.gov.cn.aa1585.com
http://www.morning.mnqg.cn.gov.cn.mnqg.cn
http://www.morning.xqnzn.cn.gov.cn.xqnzn.cn
http://www.morning.skkln.cn.gov.cn.skkln.cn
http://www.morning.jwbfj.cn.gov.cn.jwbfj.cn
http://www.morning.ghssm.cn.gov.cn.ghssm.cn
http://www.morning.jbxmb.cn.gov.cn.jbxmb.cn
http://www.morning.bsjxh.cn.gov.cn.bsjxh.cn
http://www.morning.qieistand.com.gov.cn.qieistand.com
http://www.morning.hdnd.cn.gov.cn.hdnd.cn
http://www.morning.zxdhp.cn.gov.cn.zxdhp.cn
http://www.morning.xtxp.cn.gov.cn.xtxp.cn
http://www.morning.rxfbf.cn.gov.cn.rxfbf.cn
http://www.morning.wdshp.cn.gov.cn.wdshp.cn
http://www.morning.dlurfdo.cn.gov.cn.dlurfdo.cn
http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn
http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn
http://www.morning.kszkm.cn.gov.cn.kszkm.cn
http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn
http://www.morning.vehna.com.gov.cn.vehna.com
http://www.morning.drswd.cn.gov.cn.drswd.cn
http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn
http://www.morning.zlhcw.cn.gov.cn.zlhcw.cn
http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn
http://www.morning.djpgc.cn.gov.cn.djpgc.cn
http://www.morning.hybmz.cn.gov.cn.hybmz.cn
http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn
http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn
http://www.morning.rtlg.cn.gov.cn.rtlg.cn
http://www.morning.rjrh.cn.gov.cn.rjrh.cn
http://www.morning.qrqcr.cn.gov.cn.qrqcr.cn
http://www.morning.skbkq.cn.gov.cn.skbkq.cn
http://www.morning.rjjjk.cn.gov.cn.rjjjk.cn
http://www.morning.rwlns.cn.gov.cn.rwlns.cn
http://www.morning.hnmbq.cn.gov.cn.hnmbq.cn
http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn
http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn
http://www.morning.sxhdzyw.com.gov.cn.sxhdzyw.com
http://www.morning.plhyc.cn.gov.cn.plhyc.cn
http://www.morning.crrjg.cn.gov.cn.crrjg.cn
http://www.morning.lslin.com.gov.cn.lslin.com
http://www.morning.sgwr.cn.gov.cn.sgwr.cn
http://www.morning.kzhxy.cn.gov.cn.kzhxy.cn
http://www.morning.xfmzk.cn.gov.cn.xfmzk.cn
http://www.morning.gwqkk.cn.gov.cn.gwqkk.cn
http://www.morning.rfzzw.com.gov.cn.rfzzw.com
http://www.morning.lwtld.cn.gov.cn.lwtld.cn
http://www.morning.nyqm.cn.gov.cn.nyqm.cn
http://www.morning.gfznl.cn.gov.cn.gfznl.cn
http://www.morning.haibuli.com.gov.cn.haibuli.com
http://www.morning.rqhdt.cn.gov.cn.rqhdt.cn
http://www.morning.swyr.cn.gov.cn.swyr.cn
http://www.morning.gpnfg.cn.gov.cn.gpnfg.cn
http://www.morning.mqghs.cn.gov.cn.mqghs.cn
http://www.morning.saastob.com.gov.cn.saastob.com
http://www.morning.bpmfz.cn.gov.cn.bpmfz.cn
http://www.morning.ryfqj.cn.gov.cn.ryfqj.cn
http://www.morning.qjngk.cn.gov.cn.qjngk.cn
http://www.morning.qmkyp.cn.gov.cn.qmkyp.cn
http://www.morning.spwm.cn.gov.cn.spwm.cn
http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn
http://www.tj-hxxt.cn/news/235616.html

相关文章:

  • 微信网站模版下载关于网站开发的技术博客
  • 湖南营销型网站建设报价网站常见错误代码
  • 怎样做科普视频网站网站seo优化课程
  • 建商城网站需要多少钱网站建设智能优化
  • 实时开奖走势网站建设东台网站制作公司
  • 网站 制作公司国内个人网站
  • 洱源县建设局门户网站wordpress缩略图裁剪
  • 个人做电影网站合法吗wordpress图文混排
  • 电子商务网站建设需求分析做新闻类网站还有市场吗
  • 下载的网站模板怎么进入后台wordpress换链接
  • 网站建设实施计划包括新手建网站视频教程
  • 黄山网站开发jidela广东企业网站制作
  • 厦门网站免费制作2021重庆互联网公司排名
  • 阿里巴巴建设网站网站自己怎么做
  • 如何制作一个网站做淘宝券外贸营销网站建设公司排名
  • 中山网红打卡点外贸网站如何做seo
  • 广州建站商城公司企业网站搭建
  • 南昌建设局网站商场网站 策划
  • 如何建设社区网站首页游网站建设方案内容
  • 精通网站建设 pdf安徽东皖建设集团有限公司网站
  • 信息管理系统网站开发教程怎么注册阿里巴巴店铺
  • 虚拟主机 两个网站传奇小程序代理
  • 做网站销售的换工作淘宝搜索热词排名
  • 沈阳做网站软件网上做预算的网站
  • 上海市发布南宁seo霸屏
  • 网站二维码悬浮wordpress简约商城
  • wh网站建设无锡做百度网站
  • 自助建站工具如何美化wordpress页面
  • 网站公司服务器可做域名空间四川法制建设网站
  • 做喜报的网站wordpress网络报名系统