分类浏览

Posts

最近更新

温故而知新 - 图

2022-01-01 · Golang / 算法

图 简单来说,图是由一组点和相对应边组成的,可以表示为G=<V,E>,V为Vertex(点集),E为Edge(边集)。细分下来根据点集之间的对等关系又可以分为,有向图(又可分为带权和无权有向图),无向图,混合图。图中点包含的另外一个的重要信息就是各自的出度(outdeg)和入度…

阅读文章

2021-12-23

Rabin Karp-字符串匹配算法

字符串匹配算法 匹配的目的就是给定两个字符串,s 和 pattern, pattern是要查找的字符串,s是被查找的文本,要求找到pattern在s中第一次出现的位置,假定pattern为 acd, s为acfgacdem, 那么s在t中第一次出现的位置就是4。常见的匹配算法有…

2021-12-17

大数据系统设计题(简易版本)

大数据设计 面试中设计的大数据设计题的场景通常不会太复杂,因此不需要给出细致的操作,给出大致的思路即可。但是有时候依旧考虑的不全面 :disappointed_relieved: :disappointed_relieved: :disappointed_relieved:借此…

2021-12-16

极角排序

前言 感谢 LeetCode 让我又接触到了一个知识:sleeping: 极角排序 高中学习的极角,指的是极坐标系中的一个点相对极点有唯一的极坐标($\rho$, $\theta$),其中$\rho$表示选定点到极点的距离,$\theta$表示选定点和极轴逆时针的夹角,且$0…

2021-12-15

红黑树-旋转的艺术

红黑树的定义和性质 红黑树的出现之前,先有的二叉查找树(BST)以及平衡二叉树(AVL树): BST根节点的值大于所有左子树的所有值,小于右子树的所有值。 AVL树是最早被发明的自平衡二叉查找树。在AVL树中,任一节点对应的两棵子树的高度差为小于等于1。 AVL的出现改变了BS…

2021-12-13

Go:字节字符,字符串遍历

Go当中的字符串为何物? 不像Java中有String,以及Python中有str类型的数据结构,在Go语言中没有字符类型,字符只是整数的特殊用例,使用了byte(uint8)和rune(int32)作为别名 Go的字符串默认使用UTF-8的编码来表示 byte和rune by…

2021-11-10

哈希(Hash),字典(Dict),集合(Set)

哈希(Hash) Hash又称为预映射,是通过散列算法将任意长度的输入变换成固定长度的输出,输出值称为散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能得到相同的输出,所以不可能从散列值来确定唯一的输入值。 将输入映射为输出的过程可以称之为h…

2021-11-05

说一说HTTPS中的"S"

HTTP HTTP全程Hypertext Transfer Protocol,超文本传输协议,作为万维网初期的产物,影响十分巨大。但是HTTP自诞生以来就像存在一些不可避免的缺点,最大的问题就是"透明传输",所有的数据在网络上都是“裸奔”,这对于用户是十分致命的。而且存在中间人…

2021-11-04

python上下文管理

什么是上下文管理 打开文件的with操作是代码中很常见的操作,这就是一个简单的上下文管理,而 就是上下文表达式;其中 是上下文管理器,f为资源对象(说白了就是一个实例化的类)。 如何实现上下文管理器 上下文管理器是基于上下文管理协议锁生成的,其中最重要的上下文管理协议就是 以及…

2021-11-01

I/O多路复用之epoll

epoll 如果说epoll和select/poll在什么地方具有相同点,那么他们的共同点在于epoll也是需要将监听的文件描述符纳入自己的"监管"。但是select和poll存在自己的一些“天生”的缺点,比如都需要不断地在用户空间和内核空间进行反复的拷贝传递,以及它们在轮询查…