
图
leagalhigh
never give up!
展开
-
leetcode-332-Reconstruct Itinerary
这道题考的是DFS、有向图、欧拉路径(一笔画问题)、Hierholzer’s 算法。思路:把问题抽象成一个图,求一笔画路径,还要保持最小序输出,所以应该用multiset存储一个起点的目的地。想到mapclass Solution { public: void dfs(string airport) { while (map1[airport].size()) {原创 2017-04-22 09:10:32 · 496 阅读 · 0 评论 -
leetcode-399. Evaluate Division
这道题考察图,dfs; 思路:关键是要用好stl,平时用的下标取double值,但是C++里就要unordered_map来存储,思路还是那样:首先将图初始化,from和to都应该存入mp中(双向的); 然后开始对每一个queries进行dfs;如果有一个query不存在于mp里,就将ret中放入-1.0, 否则说明可以到达,开始dfs:如果from == to 则放入-1.0, continue原创 2017-05-08 22:15:39 · 317 阅读 · 0 评论 -
leetcode-310. Minimum Height Trees
考察点:图,遍历,bfs,路径; 思路:这个题就是从叶子节点开始遍历,去除掉当前所有的叶子节点后,再从新图的叶子节点开始遍历,直到最后剩下一个或者两个叶子节点,就是最深的那个点。C++ 代码:class Solution { public: vector<int> findMinHeightTrees(int n, vector<pair<int, int>>& edges) {原创 2017-05-09 10:34:12 · 190 阅读 · 0 评论 -
leetcode-133. Clone Graph
考察点:图,DFS; 思路:就是用一个map记录对应label的node指针,克隆了的话就直接返回指向该node的指针,没有的话就new一个然后再对它进行递归添加节点。这个函数返回的是一个节点,而且该节点的所有neighbors都找全了,所以mp中有的话就直接返回就行。要从宏观角度看这个函数。C++代码:/** * Definition for undirected graph. * stru原创 2017-05-10 09:47:30 · 188 阅读 · 0 评论