排序
Czy_whlg
不忘本心!
展开
-
Top K Frequent Elements
1. 解析 题目大意,求前k个高频繁数(这k个数不能重复),题目中已经明确表示 k <= 不同的数的个数,所以其他异常情况我们无需考虑。 2. 分析 题目的难点:如何根据它们出现的次数进行排序。我采取的方法比较极端,利用hashtable记录每一个数和它们出现的次数,由于hashtable没有提供根据value值进行排序的功能,所以我借助可以进行排序的vector容器,直接利用ST...原创 2019-11-30 12:05:15 · 88 阅读 · 0 评论 -
Minimum Height Trees
1. 解析 题目大意,求无环无向图的最小高度树的树根节点,还是蛮难的 2. 分析 我看到的第一反应就是用DFS求解,但就是不是很好设计,折腾了半天没弄好~~~查看别的博主的思路,要利用类似拓扑排序的思路进行求解,就好比剥洋葱一样,先将最外围的叶子节点去除,然后将与叶子节点相邻的边也删除,不断重复,直到只剩下至多2个节点,刚开始我还很疑惑,为什么最小高度树至多只有2棵,经过大量手动的实例,...原创 2019-11-25 19:09:23 · 131 阅读 · 0 评论 -
Course Schedule II
1. 解析 Course Schedule的升级版,就是将结果保存一下,没什么不一样 class Solution { public: vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) { vector<int>...原创 2019-11-09 12:08:25 · 79 阅读 · 0 评论 -
Course Schedule
1. 解析 题目大意,根据所给定的课程安排顺序,判断是否合理,所考察的核心就是拓扑排序 2. 分析 2.1 拓扑排序的流程 1) 从有向图中选择一个入度为0的顶点输出 2) 删除1)中的顶点,并且删除从该顶点发出的全部边(即相关联的边入度减1) 3) 重复上述两步,直到没有剩余的节点 本题也是一样的思路,先将课程按照邻接结构表示成有向图,然后根据拓扑排序逐个取当前的节点,若最后还...原创 2019-11-08 19:48:45 · 211 阅读 · 0 评论 -
Kth Largest Element in an Array
1. 解析 题目大意,从n个元素当中选择第k个大的元素,所考察的核心就是堆排序 2. 分析 比较简单的做法就是,直接利用库函数sort方法对nums进行排序,然后返回第k个大的元素即可。但这不是本题所考察的核心,我们可以初始化堆,取堆顶,再调整,...重复直到第k次就可以取到第k个最大值 class Solution { public: int findKthLargest...原创 2019-11-11 17:06:30 · 105 阅读 · 0 评论