前言
在刷今日的leetcode时,leetcode每日一题(课程表II,拓扑排序)看完了解析后,手撕了一下代码,发现总是栈溢出,就很奇怪为什么!!,后来看了一下官方解析,发现在使用for循环上有一些不同,我使用的是传统的C++98版本,官方给的是C++11。
源代码
官方的题解:
class Solution {
public:
vector<vector<int>>vec;
vector<int> visited; //已经访问过的节点 0代表未访问 1代表正在访问 2代表已访问
vector<int>res;
bool isccurcle=false; //是否形成回环,若是则无法选课
vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {
vec.resize(numCourses); //初始化大小,使直接访问不出错
visited.resize(numCourses);
for(const auto &a:prerequisites)
{
vec[a[1]