怎么把网站做火,网页微信手机版,ios网站开发视频教程,代理品牌前言
###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程#xff08;例如想要掌握基础用法#xff0c;该刷哪些题#xff1f;#xff09;我的解析也不会做的非常详细#xff0c;只会提供思路和一些关键点#xff0c;力扣上的大佬们的题解质量是非…前言
###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程例如想要掌握基础用法该刷哪些题我的解析也不会做的非常详细只会提供思路和一些关键点力扣上的大佬们的题解质量是非常非常高滴 习题
1.所有可能的路径
题目链接:797. 所有可能的路径 - 力扣LeetCode
题面:
分析:简单的dfs
代码:
class Solution {ListListInteger ans new ArrayList();int n;int[][] graph;public ListListInteger allPathsSourceTarget(int[][] graph) {ListInteger list new ArrayList();n graph.length;this.graph graph;int[] flag new int[n];list.add(0);recursion(list,0,flag);return ans;}public void recursion(ListInteger list,int x,int[] flag){// System.out.println(x);if(x(n-1)){// System.out.println(1);ans.add(new ArrayList(list));}int[] arr graph[x];int m arr.length;for(int i 0;im;i){if(flag[arr[i]]0){list.add(arr[i]);flag[arr[i]] 1;recursion(list,arr[i],flag);flag[arr[i]] 0;list.remove(list.size()-1);}} }
} 2.钥匙和房间
题目链接:841. 钥匙和房间 - 力扣LeetCode 题面:
代码:
class Solution {int n;int[] have;int count;int[] flag;ListListInteger rooms;public boolean canVisitAllRooms(ListListInteger rooms) {this.rooms rooms;n rooms.size();ListInteger list rooms.get(0);have new int[n];flag new int[n];flag[0] 1;count n-1;have[0] 1;for(int a:list){if(have[a]0)count--;have[a] 1;}recursion(have);System.out.println(count);return count0?true:false;}public void recursion(int[] have){int blog 0;for(int i 0;in;i){if(have[i]1flag[i]0){flag[i] 1;ListInteger list rooms.get(i);for(int a:list){if(have[a]0)count--;have[a] 1;}blog 1;}}if(blog1)recursion(have);}
} 后言
上面是力扣图论专题下一篇是其他的习题希望有所帮助一同进步共勉