最近就是忙工作项目 工作间隙就刷了刷LEETCODE 所以没啥更新

 // 1111111.cpp: 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <vector>
#include <queue> using namespace std; bool canFinish1(int numCourses, vector<vector<int>>& prerequisites) {
vector<vector<int> > graph(numCourses, vector<int>());
vector<int> in(numCourses, );
for (auto a : prerequisites) {
graph[a[]].push_back(a[]);
++in[a[]];
}
queue<int> q;
for (int i = ; i < numCourses; ++i) {
if (in[i] == ) q.push(i);
}
while (!q.empty()) {
int t = q.front();
q.pop();
for (auto a : graph[t]) {
--in[a];
if (in[a] == ) q.push(a);
}
}
for (int i = ; i < numCourses; ++i) {
if (in[i] != ) return false;
}
return true;
} //========================================================================== bool canFinishDFS(vector<vector<int> > &graph, vector<int> &visit, int i) {
if (visit[i] == -) return false;
if (visit[i] == ) return true;
visit[i] = -;
for (auto a : graph[i]) {
if (!canFinishDFS(graph, visit, a)) return false;
}
visit[i] = ;
return true;
} bool canFinish2(int numCourses, vector<vector<int> >& prerequisites) {
vector<vector<int> > graph(numCourses, vector<int>());
vector<int> visit(numCourses, );
for (auto a : prerequisites) {
graph[a[]].push_back(a[]);
}
for (int i = ; i < numCourses; ++i) {
if (!canFinishDFS(graph, visit, i)) return false;
}
return true;
} int main()
{
//测试数据
{
int i = ;
vector<vector<int> > v;
v.push_back(std::vector<int>{, });
v.push_back(std::vector<int>{ ,});
canFinish1(i , v);
}
//{
// int i = 2;
// vector<vector<int> > v;
// v.push_back(std::vector<int>{1, 0});
// v.push_back(std::vector<int>{0, 1});
//}
//{
// int i = 2;
// vector<vector<int> > v;
// v.push_back(std::vector<int>{1, 0});
//}
//{
// int i = 3;
// vector<vector<int> > v;
// v.push_back(std::vector<int>{1, 0});
// v.push_back(std::vector<int>{2, 0});
//} // {
// int i = 3;
// vector<vector<int> > v;
// v.push_back(std::vector<int>{1, 0});
// v.push_back(std::vector<int>{2, 0});
// }
//
// {
// int i = 3;
// vector<vector<int> > v;
// v.push_back(std::vector<int>{0, 1});
// v.push_back(std::vector<int>{1, 2});
// }
//
// {
// int i = 4;
// vector<vector<int> > v;
// v.push_back(std::vector<int>{0, 1});
// v.push_back(std::vector<int>{1, 2});
// v.push_back(std::vector<int>{2, 0});
// v.push_back(std::vector<int>{1, 3});
// }
//
// {
// int i = 4;
// vector<vector<int> > v;
// v.push_back(std::vector<int>{0, 1});
// v.push_back(std::vector<int>{1, 2});
// v.push_back(std::vector<int>{1, 3});
// } return ;
}

leetcode 207

20180613更新 leetcode刷题的更多相关文章

  1. LeetCode刷题专栏第一篇--思维导图&时间安排

    昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日 ...

  2. LeetCode刷题总结之双指针法

    Leetcode刷题总结 目前已经刷了50道题,从零开始刷题学到了很多精妙的解法和深刻的思想,因此想按方法对写过的题做一个总结 双指针法 双指针法有时也叫快慢指针,在数组里是用两个整型值代表下标,在链 ...

  3. LeetCode刷题总结-数组篇(上)

    数组是算法中最常用的一种数据结构,也是面试中最常考的考点.在LeetCode题库中,标记为数组类型的习题到目前为止,已累计到了202题.然而,这202道习题并不是每道题只标记为数组一个考点,大部分习题 ...

  4. LeetCode刷题总结-数组篇(中)

    本文接着上一篇文章<LeetCode刷题总结-数组篇(上)>,继续讲第二个常考问题:矩阵问题. 矩阵也可以称为二维数组.在LeetCode相关习题中,作者总结发现主要考点有:矩阵元素的遍历 ...

  5. LeetCode刷题总结-数组篇(下)

    本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17 ...

  6. LeetCode刷题总结-树篇(上)

          引子:刷题的过程可能是枯燥的,但程序员们的日常确不乏趣味.分享一则LeetCode上名为<打家劫舍 |||>题目的评论: 如有兴趣可以从此题为起点,去LeetCode开启刷题之 ...

  7. LeetCode刷题笔记和想法(C++)

    主要用于记录在LeetCode刷题的过程中学习到的一些思想和自己的想法,希望通过leetcode提升自己的编程素养 :p 高效leetcode刷题小诀窍(这只是目前对我自己而言的小方法,之后会根据自己 ...

  8. LeetCode刷题模板(1):《我要打10个》之二分法

    Author       :  叨陪鲤 Email         : vip_13031075266@163.com Date          : 2021.01.23 Copyright : 未 ...

  9. leetcode刷题目录

    leetcode刷题目录 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 4. 寻找两个有序数组的中位数 5. 最长回文子串 6. Z 字形变换 7. 整数反转 8. 字符串转换整数 (a ...

随机推荐

  1. mysql创建用户和库

    先用root登陆mysql,然后运行下面代码创建mysql用户和库 下面创建的帐号:test123  密码:123456  库名:test123 CREATE USER '; GRANT USAGE ...

  2. metasploit framework(一):基本使用

    它位于/usr/share/metasploit-framework 进入到modules目录,有六大模块 exploits:系统漏洞利用的流程,对系统漏洞注入一些特定的代码,使其覆盖程序执行寄存器, ...

  3. 解题7(FindFirstOnlyOne)

    题目描述 找出字符串中第一个只出现一次的字符 输入描述: 输入一个非空字符串 输出描述: 输出第一个只出现一次的字符,如果不存在输出-1 示例1 输入 asdfasdfo 输出 o 代码如下: pac ...

  4. 生产环境nginx上传文件报错413 Request Entity Too Large

    修改nginx配置文件/etc/nginx/nginx.conf 在http{}中添加 client_max_body_size 100m; 意思是设置上传文件大小

  5. 学习DRF之前须知知识点

    在学习DRF之前~我们要先复习一些知识点~~ FBV和CBV 学习Django的时候~我们已经学习过了CBV以及FBV~~我们来复习一下~~ 什么是FBV和CBV呢~~ FBV 基于函数的视图 CBV ...

  6. inception+archery SQL审核平台

    关闭防火墙和selinux 宿主机安装mysql,创建archery数据库,并给所有权限,允许远程连接到该数据库 grant all privileges on *.* to 'root'@'%' i ...

  7. VS2013 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array<int>::operator [](int)”只是在返回类型上不同

    1,VS2013 错误 1 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array ...

  8. Windows配置Java环境

    https://jingyan.baidu.com/article/84b4f56598d88b60f7da3272.html

  9. [Git] 获取指定的历史版本代码

    首先 ,把项目 clone 到其他文件夹下 git clone git@github.com:skyming/BMAdScrollView.git 然后查看指定历史版本 tree 的 SHA chec ...

  10. Unity3D无限奔跑者Playmaker v1.5

    这款功能丰富的移动准备包内含使您自己的各种各样的3D游戏运行的一切要素.无需编程! 功能 1 - 响应式滑动控制2 - 投掷炮弹3 - 可破坏物体4 - 能力提升道具- 金币磁铁- 护盾- 继续密钥- ...