玩转算法系列--图论精讲 面试升职必备(Java版)
第1章 和bobo老师一起,玩转图论算法
欢迎大家来到我的新课程:《玩转图论算法》。在这个课程中,我们将一起完整学习图论领域的经典算法,培养大家的图论建模能力。通过这个课程的学习,你将能够真正地,玩转图论算法:)
第2章 图的基本表示
千里之行,驶于足下。解决任何有一个图论算法问题,首先需要用基本的数据结构来表示图。在这一章,我们就将探索图的基本表示问题,学习邻接矩阵和邻接表,进而,也让同学们熟悉这个课程的整体代码风格。
第3章 图的深度优先遍历
任何一种数据结构,都需要进行遍历。图也不例外。通过深入理解树的遍历,掌握图的遍历并不难,在这一章中,我们就将从树的深度优先遍历出发,为大家讲解图的深度优先遍历。通过这个过程,也让同学们更加深刻地理解递归。...
第4章 图的深度优先遍历的应用
别看图的深度优先遍历简单,用处可多了。联通分量,路径问题,环检测,二分图检测,都可以用DFS解决。通过这一章的学习,大家不仅能够解决这些问题,还将进一步,对递归函数的设计与编写,有更深刻的体会。
第5章 图的广度优先遍历
图的广度优先遍历是图的另外一种遍历形式。图的广度优先遍历,不仅仅可以解决大多数DFS可以解决的问题,还拥有着独特的性质。与此同时,在这一章,我们还将揭示DFS和BFS的神奇联系。
第6章 图论问题建模和 floodfill
别看我们只学习了图的DFS和BFS,但其实,已经能够解决80%的面试问题了。在这一章,我们就将通过几个经典算法面试问题,来说说图论问题建模的套路。同时,我们会接触图论领域的一个经典算法:floodfill。
第7章 图论搜索和人工智能
在这一章,我们将来重点关注算法面试中的BFS。不要小看BFS,在这一章,我们求解图论面试问题的过程中,将在不经意间,接触到人工智能领域解决问题的一个重要思想:搜索。而BFS,则是解决一大类人工智能问题的基石。
第8章 桥和割点
对于一张图,我们可以分析出各种不同的指标。桥和割点就是一类很重要的指标,在很多问题中有着巨大的作用。在这一章,我们就来看看求解图中的桥和割点的算法。同时,大家也将更深刻的了解到:DFS决不仅仅是遍历这么简单。...
第9章 欧拉路径和哈密尔顿路径
在这一章,我们将讨论两类特殊的路径问题,欧拉路径和哈密尔顿路径。这两个问题都在图论领域有着举足轻重的地位。同时,通过这一章的学习,同学们不仅可以学习到解决这两个问题的图论算法,还将学习算法设计中的一类重要方法:状态压缩。...
第10章 最小生成树
在这一章,我们将开始迈入有权图的世界,来看最小生成树问题。我们将介绍两种最小生成树算法:Prim和Kruskal。通过这两个算法的学习,大家也将看到高级数据结构,比如并查集和优先队列,在解决复杂算法问题中的作用。
第11章 有向图算法
在这一章,我们将迈入有向图的世界。我们将看有向图和无向图有什么本质的不同,进而深入研究 DAG 的性质,从而学习拓扑排序,关键路径,SCC等算法问题。
第12章 有权图的最短路径
最短路径问题应该是图论领域最典型,也是最古老的应用了。尽管如此,最短路径算法并没有那么简单,不同的最短路径算法,有着各自的优劣和适应场合。在这一章,我们就将系统地学习比较这些最短路径算法。
第13章 网络流
在这一章,我们将接触一种全新的结构:网络。在图论的世界中,对“网络”有着特殊的定义。同时,也能延伸出大名鼎鼎的“网络流”算法。在这一章,我们将学习网络流这一图论领域的“高级算法”,看如何应用它,解决大量实际中的问题。...
第14章 匹配问题
匹配算法可以看作是网络流算法的延伸,也有着自己独特的思想。在这一章,我们将仔细看一种特殊的图结构:二分图,进而,仔细研究其中所涉及的匹配问题。
第15章 更广阔的图论世界
通过这个课程的学习,相信大家已经是图论领域的小牛了。但是,图论领域远远不止如此,甚至很多极其前沿的科学问题,都和图论这个领域有着千丝万缕的联系。希望这个课程是一个开始,让感兴趣的同学们,可以在更广阔的图论世界翱翔。大家加油!...
下载地址:玩转算法系列--图论精讲 面试升职必备(Java版)
玩转算法系列--图论精讲 面试升职必备(Java版)的更多相关文章
- 微软BI SSIS 2012 ETL 控件与案例精讲面试 200 问(SSIS 面试题,ETL 面试题)
开篇介绍 本自测与面试题出自 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程,对于学完本课程的每一课时和阅读完相关辅助 ...
- 清北学堂2018DP&图论精讲班 DP部分学习笔记
Day 1 上午 讲的挺基础的--不过还是有些地方不太明白 例1 给定一个数n,求将n划分成若干个正整数的方案数. 例2 数字三角形 例7 最长不下降子序列 以上太过于基础,不做深入讨论 例3 给定一 ...
- 精讲 org.w3c.dom(java dom)解析XML文档
org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会 ...
- 2019春招面试高频题(Java版),持续更新(答案来自互联网)
第一模块--并发与多线程 Java多线程方法: 实现Runnable接口, 继承thread类, 使用线程池 操作系统层面的进程与线程(对JAVA多线程和高并发有了解吗?) 计算机资源=存储资源+计算 ...
- 算法学习 八皇后问题的递归实现 java版 回溯思想
1.问题描述 八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或 ...
- 总结:Java 集合进阶精讲2-ArrayList
知识点:Java 集合框架图 总结:Java 集合进阶精讲1 总结:Java 集合进阶精讲2-ArrayList 初探: ArrayList底层结构是数组,是List接口的 可变数组的实现,所以会占用 ...
- 总结:Java 集合进阶精讲1
知识点:Java 集合框架图 总结:Java 集合进阶精讲1 总结:Java 集合进阶精讲2-ArrayList 集合进阶1---为集合指定初始容量 集合在Java编程中使用非常广泛,当容器的量变得非 ...
- Java岗 面试考点精讲(基础篇01期)
即将到来金三银四人才招聘的高峰期,渴望跳槽的朋友肯定跟我一样四处找以往的面试题,但又感觉找的又不完整,在这里我将把我所见到的题目做一总结,并尽力将答案术语化.标准化.预祝大家面试顺利. 术语会让你的面 ...
- 【C++自我精讲】基础系列二 const
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...
随机推荐
- JavaScript中随机打乱一个数组
JavaScript中随机打乱一个数组 function shuffle(arr) { let i = arr.length; while (i) { let j = Math.floor(Math. ...
- Java并发编程:Java中的锁和线程同步机制
锁的基础知识 锁的类型 锁从宏观上分类,只分为两种:悲观锁与乐观锁. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新 ...
- DevExpress中TreeList树样式调整
DevExpress的TreeList默认是没有树状线的,修改TreeLineStyle属性无效,这对于Tree并不好看. 解决方案一 官方解释说对于DevExpress的标准主题是不支持TreeLi ...
- 使用ArcPy拓扑检查的基本步骤
拓扑检查是GIS的特性,在ArcGIS可使用多种方法进行检查,包括: 1.在数据集上右键按向导建立: 2.使用拓扑工具箱的一系列工具分步建立: 3.创建模型工具,制作专门的拓扑工具: 4.利用ArcP ...
- Struts2框架和SpringMvc框架的区别
Struts2框架和SpringMvc框架的区别 一.拦截机制的不同 Struts2是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的ActionBean注入作用域 ...
- pandas 学习 第7篇:DataFrame - 数据处理(应用、操作索引、重命名、合并)
DataFrame的这些操作和Series很相似,这里简单介绍一下. 一,应用和应用映射 apply()函数对每个轴应用一个函数,applymap()函数对每个元素应用一个函数: DataFrame. ...
- GO Slice
一.切片(Slice) 1.1 什么是切片 Go 语言切片是对数组的抽象. Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数 ...
- 教你如何用Python向手机发送通知
------------恢复内容开始------------ 你曾想尝试在服务器端或电脑上向手机发送通知吗? 你曾烦恼过企业邮箱的防骚扰机制吗? 现在,我们可以用一种简单轻松的方法来代替企业邮箱了! ...
- 爬虫框架-selenium
selenium介绍: selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟 ...
- uni-app条件编译:#ifdef #ifndef #endif
语法: // #ifdef %PLATFORM% 这些代码只在该平台编译 // #endif #ifdef : if defined 仅在某个平台编译 #ifndef : if n ...