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

电商 网站 设计自适应h5网站模板

电商 网站 设计,自适应h5网站模板,怎么在试客网站做佣金单,解析软件的网站所有可达路径 98. 所有可达路径 (kamacoder.com) 深度优先搜索&#xff0c;和之前的回溯题类似。 #include <iostream> #include <vector> using namespace std;// 定义一个二维向量来存储所有可能的路径 vector<vector<int>> paths; // 定义一个向…

所有可达路径

98. 所有可达路径 (kamacoder.com)

深度优先搜索,和之前的回溯题类似。

#include <iostream>
#include <vector> 
using namespace std;// 定义一个二维向量来存储所有可能的路径
vector<vector<int>> paths;
// 定义一个向量来存储当前路径
vector<int> path;// 定义深度优先搜索函数
void dfs(const vector<vector<int>>& graph, int x, int n) {// 如果到达节点n,将当前路径添加到所有路径中if (x == n) {paths.push_back(path);return;}// 遍历所有可能的下一个节点for (int i = 1; i <= n; i++) {// 如果节点x和节点i之间有边(即连通)if (graph[x][i] == 1) {// 将节点i添加到当前路径path.push_back(i);// 递归地继续搜索从节点i开始的路径dfs(graph, i, n);// 回溯,移除节点i,尝试其他可能的路径path.pop_back();}}
}int main() {int N, M; // N表示节点数量,M表示边的数量cin >> N >> M; // 输入节点数量和边的数量// 创建一个(N+1) x (N+1)的二维向量,初始化所有值为0vector<vector<int>> graph(N + 1, vector<int>(N + 1, 0));int s, t;while (M--) { // 循环M次,输入每条边的两个节点cin >> s >> t;graph[s][t] = 1; // 表示节点s和节点t之间有边,即连通}// 从节点1开始搜索,将节点1添加到当前路径path.push_back(1);dfs(graph, 1, N); // 调用DFS函数搜索所有路径// 如果没有找到路径,输出-1if (paths.size() == 0)cout << -1 << endl;// 输出所有找到的路径for (auto x : paths) {for (int i = 0; i < x.size() - 1; i++) {cout << x[i] << " ";}cout << x[x.size() - 1] << endl;}
}

在构建图是,读入所有边,时间复杂度为O(M),在DFS是,最坏情况需要访问图中的每个节点和每天便,DFS的时间复杂度为O(N+M)。总的时间复杂度为O(N+M)。

空间复杂度,用邻接矩阵来存储graph信息需要(N+1)^2(从0到N+1的矩阵),paths在图全连接的情况下,可能要存储2^(N-1)条路(1-N),path为O(N),空间复杂度为O(2^(N-1))。

邻接链表参考

代码随想录 (programmercarl.com)

邻接数组也可以自己写写看。

所有可能的路径

797. 所有可能的路径 - 力扣(LeetCode)

上题的核心代码,代码如下,分析基本和上题相同。

class Solution {
public:// 定义一个向量来存储当前路径vector<int> path;// 定义一个二维向量来存储所有可能的路径vector<vector<int>> paths;// 定义深度优先搜索函数void dfs(const vector<vector<int>>& graph, int x, int n) {// 如果到达目标节点n,将当前路径添加到所有路径中if (x == n) {paths.push_back(path);return;}// 遍历当前节点的所有相邻节点for (int i = 0; i < graph[x].size(); i++) {// 将相邻节点添加到当前路径path.push_back(graph[x][i]);// 递归地继续搜索从相邻节点开始的路径dfs(graph, graph[x][i], n);// 回溯,移除刚刚添加的节点,以便尝试其他路径path.pop_back();}}vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {// 目标节点是图的最后一个节点 graph.size() - 1int n = graph.size() - 1;// 从源节点0开始,将源节点添加到当前路径path.push_back(0);// 调用DFS函数搜索所有路径dfs(graph, 0, n);// 返回找到的所有路径return paths;}
};

http://www.yayakq.cn/news/826846/

相关文章:

  • 建设外贸网站费用wordpress后台系统
  • 网站建设主题与建设目标织梦响应式网站
  • 在什么网站上可以做中学数学家教中小型门户网站
  • 搜狐员工做网站的工资多少钱机械建设网站制作
  • 深圳 购物商城网站建设济南房管局官网
  • 深圳网站建设信科便宜建一个公司网站要多少钱
  • 做网站ftp深圳网站制作建设服务公司
  • 苏州最大的网站建设公司网线水晶头的接线方法
  • 做网站的收获应用软件有哪些
  • 图片生成链接网站knowall wordpress
  • 城市管理如何宣传市建设网站东莞网站模板
  • 单位网站建设和维护上海人才招聘网官网
  • 学做网站需要什么基础临沂网站哪家好
  • 陕西专业网站开发公司网站备案怎么做
  • 南阳专业做网站苏州街网站建设
  • 可以做点赞的网站赚钱建设银行信用卡官方网站
  • 成都创新互联做网站wordpress添加js代码
  • 北京做网站哪家好建设银行网站打不开用什么浏览器
  • 品牌网站建设h5不是营销型的网站
  • 建设网站对企业的重要性百度浏览器网址
  • 句容网站建设公司网络营销的工作岗位
  • 数据分析师报名官网个人网站seo
  • 北辰手机网站建设discuz 转wordpress
  • 常见的旅游网络营销方式浦东新区网站优化公司
  • 公司核准名称网站dw自己做网站需要什么区别
  • 做网站怎样上传文件建设网站为什么要虚拟主机
  • 个人网站怎么做支付宝接口做网站信息
  • 建网站要自己买服务器吗网站开发服务转包合同
  • vs和sql怎么做网站wordpress发表图片
  • 做视频有收益的网站河北网站备案注销