实现 LRU 缓存算法

1 LRU 缓存介绍LRU 算法全称是最近最少使用算法(Least Recently Use),是一种简单的缓存策略。顾名思义,LRU 算法会选出最近最少使用的数据进行淘汰。那么什么是缓存呢?

剑指Offer Golang 实现合并区间算法

随笔记录,合并区间并不难,如果是初次接触golang,切片的排序可能是比较棘手的问题,可以使用golang自带的sort.Slice排序具体的实现可以看代码。

排序算法Golang实现之选择排序

基本原理1.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。3.重复第二步,直到所有元素均排序完毕。

DFS BFS算法比较

最近在leetcode上温习算法,在遍历操作的时候经常用到BFS,DFS两种算法。特此记录DFS:(Depth-First-Search)深度邮箱搜索算法。优先遍历垂直方向上的元素,然后再遍历水平方向上的元素。例如一颗二叉树,对于每一个节点,都会先遍历左子树然后再遍历右子树。

Go实现算法:数组中的第K个最大元素(LeetCode)

题目:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

Go语言数组切片去重复的几种算法

Go语言是2007年由Google开发的一种静态强类型的编译型语言,其语法结构上与C非常接近。在垃圾回收、错误处理以及包库方面比C要方便的多,因此从开发速度上来讲比C要快的多,而运行速度也接近于C语言。以下通过数组切片的去重算法来分析下Go语言的特性。

Golang基于前缀树的敏感词过滤算法

一个简单的基于Golang的敏感词过滤算法package mainimport ( “fmt” “unicode/utf8”)// 敏感词过滤type Trie struct { child map[rune]*Trie word string}//

「算法笔记」判断两个文本的相似度simhash算法

在项目中,有时客户需要判定两个文本的差异比较,求出差异的内容。二进制串A 和 二进制串B 的海明距离 就是 A xor B 后二进制中1的个数。

打造 Go 语言最快的排序算法

本篇文章会向大家介绍字节跳动-语言团队在 Go 语言排序算法的实践,我们使用了 pdqsort 算法 + Go1.18 泛型,实现了一个比标准库 API 在几乎所有情况下快 2x ~ 60x 的算法库。

SimHash算法

SimHash算法可计算文本间的相似度,实现文本去重。文本相似度的计算,可以使用向量空间模型,即先对文本分词,提取特征。