算法小结(Graph)

来源:互联网 发布:乐乎社区是什么意思 编辑:程序博客网 时间:2024/04/29 05:26

133. Clone Graph

要求:图的克隆
思路:无思路
ac:采用递归的方式,每次都调用clone

207 Course Schedule

要求:给定输入的选修课程,每一个课程都有先修课,判断能否完成当前课程
思路: 判断有向图是否有环这个采用bfs就可以做,超时。如果判断两个无向图是否有环,用并查集可以做
ac:采用两个数组,一个是一维,用来记录当前课程是否可以学习,另外一个是二维,将课程 +依赖 转换为 依赖 + 课程

210. Course Schedule II

要求:输出一个可行的学习路线
ac:直接在上一题目的基础上,加上一个数组,用来存储数组的输出内容,
debug:没有正确结果时,应该返回new int[0];

310. Minimum Height Trees

要求:给定无环图,自己构造一个树,得到做小树深度,选出最小树深度的根节点
思路:bfs得到树深,list缓存根节点,LTE,bfs遍历得到树深度存在问题
ac:O(n)时间复杂度,从叶子节点出发,连接叶子节点的都去掉一个,如果size为1,自己变为叶子节点,root节点不超过两个,1或者2个root节点都是符合要求的。

332. Reconstruct Itinerary

要求:给定飞机票,输出最小的欧拉距离
思路:无思路
ac:迭代版本的,利用stack,加上两个while循环,不断向stack里面添加,出栈的时候从0开始

399. Evaluate Division

要求:给定输入的除法操作,对于新输入的两个数,按照之前的等式输出相应的值
思路:无思路
ac:还是利用构造图的方法,然后进行DFS,输出正确的结果

1 0
原创粉丝点击