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

wordpress如何设置logo南阳seo网站排名

wordpress如何设置logo,南阳seo网站排名,上海法律网站建设,苏州室内设计公司看完题我就想#xff0c;这不就是进程里面的死锁问题嘛#xff0c;进程1等进程2释放锁#xff0c;进程2等进程3释放锁#xff0c;进程3等进程1释放锁#xff0c;这就造成了死锁。或者是spring中的循环依赖问题#xff0c;BeanA的初始化需要初始化一个BeanB#xff0c;Be…  看完题我就想这不就是进程里面的死锁问题嘛进程1等进程2释放锁进程2等进程3释放锁进程3等进程1释放锁这就造成了死锁。或者是spring中的循环依赖问题BeanA的初始化需要初始化一个BeanBBeanB的初始化需要初始化BeanA就出现了循环依赖。 我记得的死锁的判断是用简化图的方式先找出能最先完成的进程然后把这个点消掉再找在等待这个进程的进程里面最容易完成看看能不能消掉消到最后不能消如果有环就会死锁   而spring中解决循环依赖问题用的是三级缓存就与这道题无关了 如果用简化图就太麻烦了我就想用hashmap我把prerequisites数组里的数据以k-v的形式存在HashMap里面然后用get方法去拿到请求链中的节点放到一个set里面如果这个节点早就在set中那么就出现了循环于是几分钟就写出了下面的代码 class Solution {public boolean canFinish(int numCourses, int[][] prerequisites) {int n prerequisites.length;MapInteger, Integer map new HashMap();for(int i0;in;i){map.put(prerequisites[i][0],prerequisites[i][1]);}for(int i 0;in;i){Integer key prerequisites[i][0];SetInteger set new HashSet();set.add(key);while(map.containsKey(key)){if(set.contains(map.get(key))){return false;}else{key map.get(key);set.add(key);}}}return true;} } 然后出错了 因为我忽略了一门课的选修课有多门hashmap如果key相同后面的value会覆盖前面的value。然后自己想了很久写没想出来然后就看题解了。 class Solution {ListListInteger edges;int visit[];boolean valid true;public boolean canFinish(int numCourses, int[][] prerequisites) {edges new ArrayListListInteger();for(int i0;inumCourses;i){edges.add(new ArrayListInteger());}visit new int[numCourses];for(int[] info : prerequisites){edges.get(info[0]).add(info[1]);}for(int i0;inumCourses valid;i){if(visit[i] 0){dfs(i);}}return valid;}public void dfs(int u){visit[u] 1;for(int v : edges.get(u)){if(visit[v] 0){dfs(v);if(valid false){return;}}else if(visit[v] 1){valid false;return;} }visit[u] 2;} } 题解用的是深度优先搜索。如果我们把课程作为他的先修课的先行节点我们可以得到一个图 比如这个图就是要学A就必须先学FEC要学F必须先学E,G而E和G不需要先学其他课程所以可以先把E和G学了然后F也可以学了.... 题解用的是深度优先遍历可以结合下面的图更方便理解 它用ListListInteger edges的结构构成一个图外层的List放的是从0到numCourse-1门课程内层放的是这门课程的先修课程。然后用一个int [] visited数组表是节点的状态visit[i]0表示还没有搜索i节点上图中没有颜色的节点visit[i]1表示正在搜索这个节点上图中黄色的节点已经搜索过的节点上图中绿色的节点然后boolean valid是最后返回的结果初始化为true它只能被改成false不能被改成true所以当有节点出现了死循环就把valid改成false最后返回的valid就是false不可能是true。 然后先看dfs()方法: public void dfs(int u){visit[u] 1;for(int v : edges.get(u)){if(visit[v] 0){dfs(v);if(valid false){return;}}else if(visit[v] 1){valid false;return;} }visit[u] 2;} 课程u进入dfs后先把visit[u]从0改成1表示正在访问u节点然后通过edges.get(u)拿到u课程的所有先修课程vv然后对这些先修课程v进行判断 如果先修课程v的visit[v]0,表示还没有搜索这个课程递归调用dfs对它进行搜索 如果visit[v]1说明这个课程节点在之前已经开始搜索了但是还没有完成搜索而又重新回到了这个节点说明出现了环那么就把valid改成false直接返回 所以在前面visit[v]0的情况下dfs完了如果valid变成了false就可以直接返回。 所以当visit[v]2的时候表示可以搜索到不用做任何操作直接进入判断下一个先行课 当u的所有先修课程都判断完了并且没有出现valid改成fasle返回的情况那么表明u的所有先修课都可以搜索到那么u也可以搜索到了把visit[u]改成2。 然后再看主方法 public boolean canFinish(int numCourses, int[][] prerequisites) {edges new ArrayListListInteger();for(int i0;inumCourses;i){edges.add(new ArrayListInteger());}visit new int[numCourses];for(int[] info : prerequisites){edges.get(info[0]).add(info[1]);}for(int i0;inumCourses valid;i){if(visit[i] 0){dfs(i);}}return valid;} 先对edges创建一个外层的List然后再用for循环在这个外层List的每个节点上创建一个Lsit创建一个visit数组这都是初始化操作。然后再看下面这个for他是edges.get(info[0])拿到了外层节点然后再add(info[1])把先修课挂在了这个节点上 题解用的是edges.get(info[1]).add(info[0])我改成了edges.get(info[0]).add(info[1])因为我觉得这样更好理解两种都可以跑通。题解是按照上面的图来的以课程作为他的先修课的先行节点题解它其实是一个反向图我们的目的是要判断有没有循环依赖也就是有没有环而有没有环与方向的正反无关。 然后只要把所有课程都dfs一遍就可以for循环里面可以加上valid条件这样一旦fasle后面就不用判断了效率可以提高一点。
http://www.zqtcl.cn/news/365070/

相关文章:

  • 万源网站建设在ppt里面做网站链接
  • 做网站时怎么添加动态信息中铁航空港建设集团网站
  • 文化礼堂建设情况网站网站建设运行
  • 自己做网站很难asp网站开发四酷全书:新闻_论坛_电子商城_博客
  • 网站建设入什么会计科目从网络安全角度考量请写出建设一个大型电影网站规划方案
  • 品牌建设+网站网站建设 淘宝客末班
  • 建设商业网站学校建设门户网站的好处
  • 男女朋友在一起做那个的网站公司建设网站
  • 营销型网站的类型有哪些相册网站怎么做
  • 河南建设监理协会网站电话erp管理系统官网
  • 视频网站seo实战做企业网站一般用什么服务器
  • icp备案 网站负责人免费直播sdk
  • 网站制作和如何推广动画专业学什么
  • 北京一家专门做会所的网站基于ssh框架的网站开发流程
  • 可以在自己的电脑上做网站吗陕西商城网站建设
  • 深圳网站建设工作室郴州有什么好玩的地方
  • 用dw做的网站怎么发到网上竹妃怎么在公众号里做网站
  • 杭州网站优化搜索黑龙江公共资源交易网官网
  • 动易网站 首页模板修改平台网站是什么
  • 营销网站更受用户欢迎的原因是英文网站的建设意义
  • 学网站建设基础河北省建设网站的网站首页
  • 铜仁市住房和城乡建设部网站延边有没有做网站的
  • 如何做ppt的模板下载网站移动端网站的优点
  • 网站域名没有实名认证微信平台开发技术
  • 自己用电脑做虚拟机怎么建网站个人网站 icp 代理
  • 嘉兴网站建设999 999中国建设招标网是私人网站吗
  • 网站程序设置主页面零基础学wordpress pdf下载
  • 网站代码优化有哪些专做立体化的网站
  • 单县网站定制培训机构专业
  • 网站防红链接怎么做网站建设中提示页面