• 二叉树的序列化和反序列化

    序列化的目的  JSON 的运用非常广泛,比如我们经常将变成语言中的结构体序列化成 JSON 字符串,存入缓存或者通过网络发送给远端服务,消费者接受 JSON 字符串然后进行反序列化,就可以得到原始数据了。这就是「序列化」和「反序...
  • 堆的Go语言实现

    堆的简介  首先,堆和二叉树有啥关系呢,为什么人们总数把堆画成一棵二叉树?因为,堆在逻辑上其实是一种特殊的二叉树(完全二叉树),只不过存储在数组里。一般的链表二叉树,我们操作节点的指针,而在数组里,我们把数组索引作为指针: &em...
  • 链表习题解析

    链表高频题目2. 两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 ...
  • LFU算法

    LFU算法介绍LFU缓存机制  LFU 算法的淘汰策略是 Least Frequently Used,也就是每次淘汰那些使用次数最少的数据。对比于在LRU算法中介绍的LRU 缓存淘汰算法,LRU 算法的淘汰策略是 Least Re...
  • LRU算法

    LRU算法介绍  LRU算法(Least Recently Used)算法实质上是一种缓存机制,常用于操作系统的缓存。计算机的缓存容量是有限的,如果缓存满了就要给新的内容腾位置。那淘汰哪些缓存,哪些继续以何种方式留在缓存中就是一个...
  • Redis学习笔记(一)

      学习视频地址:【狂神说Java】Redis最新超详细版教程通俗易懂 为什么要用NoSQL  用户的个人信息、社交网络、地理位置、用户自己产生的数据、用户日志等等爆发式增长。使用NoSQL数据库可以很好的解决...
  • Union-Find(并查集)

    并查集介绍连通性  对于无向图,对其进行遍历时: 若是连通图,仅需从图中任一顶点出发,就能访问图中的所有顶点。 若是非连通图,需从图中多个顶点出发。每次从一个新顶点出发所访问的顶点集序列恰好是各个连通分量的顶点集。 &emsp...
  • 图算法

    图论基础图的逻辑结构和具体实现 图的逻辑结构   为了方便研究图,我们将图可以抽象为下面的形式: 1234type Vertex struct { id int neighbors []*Verte...
  • 数据库三大范式

    数据库三大范式为什么需要数据库规范化? 信息重复 更新异常 插入异常 无法正常显示信息 删除异常 丢失有效信息 三大范式第一范式(1NF)  第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明...
  • 循转数组相关题目

      本文是对旋转数组类型的题目的总结,一共6道,基本都是二分法的套路。 189. 旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 进阶: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个...