LeetCode 1059. 从始点到终点的所有路径(回溯)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给定有向图的边 edges,以及该图的始点 source 和目标终点 destination,确定从始点 source 出发的所有路径是否最终结束于目标终点 destination,即:

  • 从始点 source 到目标终点 destination 存在至少一条路径
  • 如果存在从始点 source 到没有出边的节点的路径,则该节点就是路径终点。
  • 从始点source到目标终点 destination 可能路径数是有限数字

当从始点 source 出发的所有路径都可以到达目标终点 destination 时返回 true,否则返回 false。

示例 1:
在这里插入图片描述

输入:n = 3, edges = [[0,1],[0,2]], source = 0, destination = 2
输出:false
说明:节点 1 和节点 2 都可以到达,但也会卡在那里。

示例 2:
在这里插入图片描述

输入:n = 4, edges = [[0,1],[0,3],[1,2],[2,1]], source = 0, destination = 3
输出:false
说明:有两种可能:在节点 3 处结束,或是在节点 1 和节点 2 之间无限循环。

示例 3:
在这里插入图片描述

输入:n = 4, edges = [[0,1],[0,2],[1,3],[2,3]], source = 0, destination = 3
输出:true

示例 4:
在这里插入图片描述

输入:n = 3, edges = [[0,1],[1,1],[1,2]], source = 0, destination = 2
输出:false
说明:从始点出发的所有路径都在目标终点结束,
但存在无限多的路径,如 0-1-20-1-1-20-1-1-1-20-1-1-1-1-2 等。

示例 5:
在这里插入图片描述

输入:n = 2, edges = [[0,1],[1,1]], source = 0, destination = 1
输出:false
说明:在目标节点上存在无限的自环。提示:
给定的图中可能带有自环和平行边。
图中的节点数 n 介于 110000 之间。
图中的边数在 010000 之间。
0 <= edges.length <= 10000
edges[i].length == 2
0 <= source <= n - 1
0 <= destination <= n - 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/all-paths-from-source-lead-to-destination
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 题目意思终点只有一个,且没有环
class Solution {
public:bool leadsToDestination(int n, vector<vector<int>>& edges, int source, int destination) {vector<bool> visited(n, false);vector<vector<int>> m(n);for(auto& e : edges)m[e[0]].push_back(e[1]);if(!m[destination].empty())return false;//终点后面还有路径return dfs(m,visited,source,destination);}bool dfs(vector<vector<int>>& m, vector<bool>& visited, int cur, int destination) {if(m[cur].size()==0 && cur != destination)return false;//到达一个终点,但不是目标点for(int next : m[cur])//往下走{if(visited[next])//访问过了return false;//有环visited[next] = true;//访问if(!dfs(m, visited, next, destination))return false;visited[next] = false;//回溯}return true;}
};

128 ms 23.8 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转载]MVVM、MVVMLight、MVVMLight Toolkit之我见

本文转自 陈希章-MVVM、MVVMLight、MVVMLight Toolkit之我见 MVVM、MVVMLight、MVVMLight Toolkit之我见 我想&#xff0c;现在已经有不少朋友在项目中使用了MVVMLight了吧&#xff0c;如果你正在做WPF&#xff0c;Silverlight&#xff0c;Windows Phone的开发&#xff0c;那么…

LeetCode 1058. 最小化舍入误差以满足目标(排序+贪心)

文章目录1. 题目2. 解题1. 题目 给定一系列价格 [p1,p2…,pn] 和一个目标 target&#xff0c;将每个价格 pi 舍入为 Roundi(pi) 以使得舍入数组 [Round1(p1),Round2(p2)...,Roundn(pn)] 之和达到给定的目标值 target。每次舍入操作 Roundi(pi) 可以是向下舍 Floor(pi) 也可以是…

LeetCode 1055. 形成字符串的最短路径(贪心)

文章目录1. 题目2. 解题1. 题目 对于任何字符串&#xff0c;我们可以通过删除其中一些字符&#xff08;也可能不删除&#xff09;来构造该字符串的子序列。 给定源字符串 source 和目标字符串 target&#xff0c;找出源字符串中能通过串联形成目标字符串的子序列的最小数量。…

html语言重点,HTML 基础重点(1)

什么是 HTML&#xff1f;HTML 全名是「超文本标记语言」(HyperText Markup Language)&#xff0c;最初是欧洲核子研究中心为了即时分享研究成果而发明了 www 万维网和 HTML。网页开发&#xff0c;涉及三种技术&#xff1a;HTML、CSS 和 JS。其中 HTML 是用于定义「网页的结构和…

[Kaggle] Housing Prices 房价预测

文章目录1. Baseline1. 特征选择2. 异常值剔除3. 建模预测2. 待优化特征工程房价预测 kaggle 地址 参考文章&#xff1a;kaggle比赛&#xff1a;房价预测&#xff08;排名前4%&#xff09; 1. Baseline import numpy as np import pandas as pd %matplotlib inline import m…

LeetCode 320. 列举单词的全部缩写(回溯/位运算)

文章目录1. 题目2. 解题2.1 回溯2.2 位运算1. 题目 请你写出一个能够举单词全部缩写的函数。 注意&#xff1a;输出的顺序并不重要。 示例&#xff1a; 输入: "word" 输出: ["word", "1ord", "w1rd", "wo1d", "wor1…

IIS 7.0 安装SSL证书过程

记录一下维瑞的技术人员在IIS 7.0 安装SSL证书过程。本文参照维瑞技术中心SSL证书安装文档所编&#xff1a;http://www.willrey.com/support/ Windows 2008 - IIS 7.0 SSL证书安装指南 在获取SSL证书前要做制作生成CSR文件&#xff0c;也就是SSL证书请求文件&#xff0c;当收到…

华为nova4是不是鸿蒙系统,华为nova 4手机什么时候可以升级鸿蒙系统?鸿蒙系统nova4升级时间介绍...

华为鸿蒙系统已经上线好久了&#xff0c;许多用户都已经抢先一步体验了&#xff0c;而最近有一部分使用华为nova4手机的用户跑来问我&#xff0c;自己的手机什么可以升级鸿蒙系统吗&#xff1f;什么时候才能升级&#xff1f;首先可以肯定的告诉大家&#xff0c;可以。具体内容下…

LeetCode 548. 将数组分割成和相等的子数组(哈希set)

文章目录1. 题目2. 解题1. 题目 给定一个有 n 个整数的数组&#xff0c;你需要找到满足以下条件的三元组 (i, j, k) &#xff1a; 0 < i, i 1 < j, j 1 < k < n - 1子数组 (0, i - 1)&#xff0c;(i 1, j - 1)&#xff0c;(j 1, k - 1)&#xff0c;(k 1, n …

html 仿ios选择控件,仿ios垂直滚动选择

注&#xff1a;必须在手机模式下才有效组件效果图组件效果图使用示例htmlcss.box{margin: 20px auto 20px auto;height: 188px;width: 90%;position: relative;}.box1{position: absolute;height: 100%;width: 60%;border-right: 1px solid #aaa;left: 0;}.box2{right: 0;posit…

LeetCode 469. 凸多边形(向量叉积)

文章目录1. 题目2. 解题1. 题目 给定一个按顺序连接的多边形的顶点&#xff0c;判断该多边形是否为凸多边形。 注&#xff1a; 顶点个数至少为 3 个且不超过 10,000。 坐标范围为 -10,000 到 10,000。 你可以假定给定的点形成的多边形均为简单多边形。 换句话说&#xff0c;保…

2016年10月计算机网络技术,2016年10月自考计算机网络技术练习题及答案(2)

2016年10月自考计算机网络技术练习题及答案(2)一、判断题(针对下面的描述&#xff0c;对的打‘√’&#xff0c;错的打‘X’)1.网络互联层的协议不包括ICMP协议.(错误)2.在同一个网络中&#xff0c;一个主机可有多个IP地址&#xff0c;多个主机也可同时使用一个IP地址.(错误)4.…

LeetCode 1102. 得分最高的路径(优先队列BFS/极大极小化 二分查找)

文章目录1. 题目2. 解题2.1 优先队列BFS2.2 极大极小化 二分查找1. 题目 给你一个 R 行 C 列的整数矩阵 A。矩阵上的路径从 [0,0] 开始&#xff0c;在 [R-1,C-1] 结束。 路径沿四个基本方向&#xff08;上、下、左、右&#xff09;展开&#xff0c;从一个已访问单元格移动到任…

计算机语音未来发展趋势,语音助手横评:发展现状|未来展望

●语音助手现状Siri带动了业内人工智能语音的发展&#xff0c;各大手机厂商都纷纷推出自家的语音助手&#xff0c;不过总体来说&#xff0c;我们心中所期望的那个无所不能的人工智能机器人还是暂时没有办法出现。首先从国内的情况来看&#xff0c;我们使用语音助手的场景也大部…

说说 JavaScript 计时器的工作原理

原文&#xff1a;John Resig http://ejohn.org/blog/how-javascript-timers-work/ How JavaScript Timers Work 从基础的层面来讲&#xff0c;理解JavaScript的定时器是如何工作的是非常重要的。计时器的执行常常和我们的直观想象不同&#xff0c;那是因为JavaScript引擎是单…

LeetCode 1538. Guess the Majority in a Hidden Array

文章目录1. 题目2. 解题1. 题目 We have an integer array nums, where all the integers in nums are 0 or 1. You will not be given direct access to the array, instead, you will have an API ArrayReader which have the following functions: int query(int a, int b…

LeetCode 1258. 近义词句子(哈希+并查集+排序+回溯)

文章目录1. 题目2. 解题1. 题目 给你一个近义词表 synonyms 和一个句子 text &#xff0c; synonyms 表中是一些近义词对 &#xff0c;你可以将句子 text 中每个单词用它的近义词来替换。 请你找出所有用近义词替换后的句子&#xff0c;按 字典序排序 后返回。 示例 1&#…