1 Star 0 Fork 0

gcc/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Solution13.h 1.65 KB
一键复制 编辑 原始数据 按行查看 历史
gcc 提交于 2022-10-16 13:16 . leetcode 刷题
//
// Created by 高森森 on 2022/1/29.
//
#ifndef LEETCODE_SOLUTION13_H
#define LEETCODE_SOLUTION13_H
#include <iostream>
#include <vector>
#include <queue>
#include<unordered_map>
using namespace std;
class Solution13 {
public:
unordered_map<int ,vector<int>>map;
vector<bool>visited;
bool findWhetherExistsPath(int n, vector<vector<int>>& graph, int start, int target) {
//创建邻接表
unordered_map<int ,vector<int>>map(n);
for(vector<int> &vec:graph){
map[vec[0]].push_back(vec[1]);
}
vector<bool>visited(n, false);
if(start==target)
return true;
queue<int> que;
que.push(start);
visited[start]= true;
while(!que.empty()){
int node=que.front();
que.pop();
if(node==target)
return true;
visited[node]=true;
for(int neigh:map[node]){
if(!visited[neigh])
que.push(neigh);
}
}
return false;
}
bool dfs(int start,int target){
if(visited[start]== true)
return false;
if(start==target)
return true;
for(int neigh:map[start])
{
if(dfs(neigh,target))
return true;
}
return false;
}
bool findWhetherExistsPath2(int n, vector<vector<int>>& graph, int start, int target) {
if(start==target)
return true;
for(vector<int> &vec:graph){
map[vec[0]].push_back(vec[1]);
}
visited.assign(n, false);
return dfs(start,target);
}
};
#endif //LEETCODE_SOLUTION13_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/gcc421/leetcode.git
git@gitee.com:gcc421/leetcode.git
gcc421
leetcode
leetcode
master

搜索帮助