算法
大鹏小站
一个快乐敲代码的程序猿
展开
-
二叉树遍历(前序、中序、后序)——Java实现
一、前序遍历访问顺序:先根节点,再左子树,最后右子树;上图的访问结果为:GDAFEMHZ。1)递归实现public void preOrderTraverse1(TreeNode root) { if (root != null) { System.out.print(root.val + "->"); preOrderTraverse1(root.left); preOrderTraverse1(root.原创 2021-03-14 10:25:57 · 248 阅读 · 0 评论 -
LRU算法
LRU全称是Least Recently Used,即最近最久未使用的意思。LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。1、栈实现可以用一个特殊的栈来保存当前正在使用的各个页面的页面号。当一个新的进程访问某页面时,便将该页面号压入栈顶,其他的页面号往栈底移,如果内存不够...原创 2019-10-15 18:07:38 · 1851 阅读 · 0 评论 -
TreeSet的两种排序方式
1.排序的引入由于TreeSet可以实现对元素按照某种规则进行排序,例如下面的例子[java] view plain copypublic class TreeSetDemo { public static void main(String[] args) { // 创建集合对象 //转载 2017-10-30 18:21:32 · 1966 阅读 · 0 评论 -
红黑树(RB-tree)比AVL树的优势在哪?
首先红黑树是不符合AVL树的平衡条件的,即每个节点的左子树和右子树的高度最多差1的二叉查找树。但是提出了为节点增加颜色,红黑是用非严格的平衡来换取增删节点时候旋转次数的降低,任何不平衡都会在三次旋转之内解决,而AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多。所以红黑树的插入效率更高!!!这里引用一下知乎上的回答:Answer转载 2017-10-30 19:12:25 · 389 阅读 · 0 评论 -
leedcode算法:两数之和
开始学算法,都是从leedcode上看的题,Java版本给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]public class TwoSum {...原创 2018-10-15 23:56:06 · 545 阅读 · 0 评论