JavaTower
万物皆有裂痕,那是光照进来的地方。
MisterPan
不思则罔,不学则殆。
展开
-
查找 TopK 问题
从海量数字中寻找最大/小的 k 个,这类问题我们称为 TopK 问题。通常使用数据结构-最大/小堆来解决求前 k 大,用最小堆,即堆顶元素为堆中最小值。求前 k 小,用最大堆,即堆顶元素为堆中最大值。如前k大的值, 传入列表 list=[12, 39, 3, 72, 56, 81, 15, 9, 103] 和 k=3, 输出 [103, 81, 72]。如前k小的值, 传入列表...原创 2019-10-26 11:40:23 · 634 阅读 · 0 评论 -
二叉树的层序遍历
二叉树的层序遍历,分为自上而下和自下而上进行层序遍历。自上而下:从根结点层往下逐层从左往右访问。自下而上:从叶子结点层往上逐层从左往右访问。1.自上而下层序遍历思路:利用队列先进先出的特性。1.创建Queue,根节点入队;2.队列不为空,记录此时的队列长度(即该层的元素个数);3.按以上长度循环遍历队列,取队列元素,将结果存到一个一维向量,然后入队其左右两个子节点。将结果添...原创 2019-10-26 11:37:01 · 1730 阅读 · 0 评论 -
二叉树的前中后序遍历
二叉树的前中后遍历,其前中后,您可理解为指的是根结点所在的序。前序遍历:前序遍历的顺序为根-左-右中序遍历:中序遍历的顺序为左-根-右后序遍历:后序遍历的顺序为左-右-根1.前序遍历思路:利用栈后进先出的特性。1.根结点入栈;2.循环取栈顶元素、右子结点入栈、左子结点入栈。JAVA参考代码public class TreeNode { int val; ...原创 2019-10-26 11:35:45 · 300 阅读 · 0 评论 -
反转链表的几种模式
链表作为一种常用的数据结构,面试当然也是家常便饭。此处就来谈谈关于链表面试中的的几种常见反转。1.逆序所有节点输入:list = 1->2->3->4->5->null输出:list = 5->4->3->2->1->null思路:定义previous、current、next(即前驱、当前、后继)指针。从头结点开始往后一个个逆...原创 2019-10-26 11:32:46 · 273 阅读 · 0 评论