Skip to content

Latest commit

 

History

History
37 lines (17 loc) · 1.33 KB

File metadata and controls

37 lines (17 loc) · 1.33 KB

本周总共做了4道算法

  1. top-k-frequent-words

​ 最简单的使用两个map,暴力解决

​ Java使用优先级队列来解决top k问题

  1. find-duplicate-file-in-system

​ 解法很简单,循环求解。后面的后续行动题目更有意义。

  1. second-minimum-node-in-a-binary-tree

    类似数组寻找第二小的数,维护两个数分别是最小和第二小的数。将遍历数组的方式改为遍历二叉树

  2. minimum-distance-between-bst-nodes

    最开始考虑使用递归方案,但是题目描述没有限定两个节点一定相邻,直接用递归不好实现。

    由于是搜索二叉树,可以直接按照中序遍历,最终生成一个有序的链表,判断链表相邻节点的差值,计算出最小值。

一些思考

  1. 二叉树的基本操作和性质还是很重要的,解题时可以利用不用种类的二叉树。先序,中序,后序的递归和非递归操作需要熟练掌握
  2. 哈希表在查找,统计数量,去重都是挺有用的
  3. 做没有见过的算法题,考虑好使用的数据结构和算法。
  4. 算法在实际中的应用,比如 609。看源码的时候注意使用的数据结构
  5. 递归算法和二叉树还是有些问题,递归还是需要多练