Pure Soul

Golang
Golang

Diameter of Tree

Definition of diameter In a given tree, the diameter is defined as the longest path between any two nodes. For instance, the diameter of the tree shown below is 4, which is formed by the paths between nodes (1, 8), (2, 8), and (5, 8). How can we obtain diamete…

2024年7月7日 0条评论 932点热度 2人点赞 ycq 阅读全文
Golang

API限速设计

给定一个公共API,限制每个用户每秒只能调用1000次,如何实现?这个一个经典的API限速问题(API rate limiting)。 初始想法 最朴素的想法就是给每一个用户配额,此时为Q,在第一次调用的时候分配给用户,然后在接下来的时间段,如果访问的此时大于Q,就直接拒绝用户的调用。随后经过一段时间后,再次分配Q。 type tf struct { limits int lastAsk time.Time } var GAP time.Duration = time.Second * 10 // 单次访问限制在1…

2022年1月24日 0条评论 998点热度 0人点赞 ycq 阅读全文
Golang

雪花算法及Golang实现

雪花算法能解决什么问题? 雪花算法能够生成全局唯一的ID编码作为其他地方的标记。且生成一系列的ID满足如下的性质: 生成的系列ID是递增的 高可用性:任何时候都能够生成唯一的ID 再高并发的条件下也能够保证服务 SnowFlake的组成 最高位是符号位,始终为0 41位的时间戳,精度位毫秒级,可使用69年 10位的机器码,支持1024个节点 12位的id,每毫秒可以生成4096个id 12位的计数序列号,自增。同一节点,同一毫秒最多产生4096个序号 SnowFlake的golang实现 package snow …

2022年1月2日 0条评论 1379点热度 0人点赞 ycq 阅读全文
Golang

温故而知新 - 图

图 简单来说,图是由一组点和相对应边组成的,可以表示为G=<V,E>,V为Vertex(点集),E为Edge(边集)。细分下来根据点集之间的对等关系又可以分为,有向图(又可分为带权和无权有向图),无向图,混合图。图中点包含的另外一个的重要信息就是各自的出度(outdeg)和入度(indeg),表示了以该点作为出边和入边的个数。 图的复杂度 对于无向图而言,所有点的度之和为sum(deg)=2*|E|,度之和为边的数目的两倍。对于有向图而言,所有点的入度之和自然等于出度之和,也会等于边的数目,毕竟每一条边存在源…

2022年1月1日 0条评论 644点热度 0人点赞 ycq 阅读全文
Golang

Rabin Karp-字符串匹配算法

字符串匹配算法 匹配的目的就是给定两个字符串,s 和 pattern, pattern是要查找的字符串,s是被查找的文本,要求找到pattern在s中第一次出现的位置,假定pattern为 acd, s为acfgacdem, 那么s在t中第一次出现的位置就是4。常见的匹配算法有以下几种: 算法 预处理时间 匹配时间 暴力匹配 $O(n)$ $O((n-m+1)*m)$ Rabin Karp $O(m)$ $O((n-m+1)*m)$ Finite automaton $O(m| \sum |)$…

2021年12月23日 0条评论 1000点热度 0人点赞 ycq 阅读全文
Golang

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

大数据设计 面试中设计的大数据设计题的场景通常不会太复杂,因此不需要给出细致的操作,给出大致的思路即可。但是有时候依旧考虑的不全面 :disappointed_relieved: :disappointed_relieved: :disappointed_relieved:借此机会记录下来巩固自己这方面的知识。 数据流采样 这是一个经典的采样问题,如果之前没见过一时半会想不出来解决办法。基本场景如下: 有一个无限的整数数据流,如何从中随机地抽取k个整数出来?使得每一个数被抽中的概率相同。 现实场景可以描述为:现有一…

2021年12月17日 0条评论 1064点热度 0人点赞 ycq 阅读全文
Golang

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

Go当中的字符串为何物? 不像Java中有String,以及Python中有str类型的数据结构,在Go语言中没有字符类型,字符只是整数的特殊用例,使用了byte(uint8)和rune(int32)作为别名 Go的字符串默认使用UTF-8的编码来表示 byte和rune byte和rune在Go内部分别为uint8以及int32的别名: // byte is an alias for uint8 and is equivalent to uint8 in all ways. It is // used, by c…

2021年12月13日 0条评论 1331点热度 0人点赞 ycq 阅读全文
Golang

Go学习笔记

最近开始学习Go,记录一下Go语言的学习笔记。 基础篇 1- 如果import了没有使用的包,那么会出现红线提醒"、import for side-effects"以及"unused import",我所使用的GoLand编辑器会在go build之后自动消除这些错误,这挺好的 2- 只能引用其中已导出的名字(顾名思义),并且已经导出的方法均为大写开头,这和Python当中的是不一样的。例如导入了math,之后所有的方法都是大写开头,例如math.Acos()函数 3- 变量的类型都声明在变量之后,函数也是如此,例…

2020年6月8日 0条评论 898点热度 0人点赞 ycq 阅读全文

COPYRIGHT © 2021 oo2ee.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS