笔记
文章平均质量分 82
、Edgar
Coding with fun
展开
-
Git 基本使用
概念当我们看到 Git 的时候,涌现上来的第一个想法就是 Git 是什么,我们为什么要使用 Git ?首先解决一下第一个问题,Git 是什么?Git 官网上有一段说明: Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. 翻译一下就是说:Git原创 2021-12-18 11:44:12 · 837 阅读 · 0 评论 -
八大排序算法及其Go代码实现
1.选择排序原理每次选择数组中的最小元素,排在第一个位置算法步骤[38,65,97,76,13,27,49]13 [65 97 76 38 27 49]13 27 [97 76 38 65 49]13 27 38 [76 97 65 49]13 27 38 49 [97 65 76]13 27 38 49 65 [97 76]13 27 38 49 65 76 [97]13 27 38 49 65 76 97代码实现func SelectSort(data []int) { l原创 2021-11-29 18:00:14 · 409 阅读 · 0 评论 -
分布式 ID 生成器
背景假设我们有一个分布式系统,系统中需要维护全局 id 字段,我们可以把它认为是唯一的标识,不能够重复出现,那么问题来了,我们应该如何生成这样的 id 呢?其实很容易想到的一种解决方式就是使用 Redis 的键值对了,每次更新的时候直接调用 incr,生成的 id 也是唯一的,还有一种方式就是使用 MySQL 或者其他的数据库,因为我们知道 MySQL 中可以生成自增主键,使用这个主键作为一个分布式 id 也是可行的。但是上面的这两种方式效率不会特别高,并且依赖于第三方,我们如果想要更高效的生成分布式原创 2021-11-24 16:40:50 · 447 阅读 · 0 评论 -
一致性哈希算法原理及代码实现
一致性哈希安装go get -u github.com/junhaideng/consistent使用c := consistent.New()ips := []string{"192.168.0.1", "192.168.0.2", "192.168.0.3", "192.168.0.4"}for _, ip := range ips { c.Add(ip)}fmt.Println("ip: ", c.Get("/hello.txt"))背景在介绍一致性哈希之前,首先来看原创 2021-11-10 21:43:17 · 1017 阅读 · 0 评论 -
常用HTTP状态码及相关含义
2xx 200->表示请求成功,获取到相应的内容 204->服务器成功处理请求,但是没有返回内容 206->服务器成功处理请求,返回资源的一部分,一般在HTTP请求中设置了Content-Range字段3xx 301->请求的网页已经永久移动到另外一个位置,如果时Get或Head请求,会将请求转到新的位置 302->网站临时移动到另外一个服务器,但是请求者应该继续使用原有的位置来响应以后的请求。 303->查看其他位置 304->自上次请求之后原创 2021-03-03 12:03:05 · 132 阅读 · 0 评论 -
第一章--核心套路篇 之 滑动窗口算法框架
滑动窗口算法的主要代码框架如下// s 是所给的字符串或者其他数组// t 是目标值func slidingWindow(s, t string) { need := make(map[byte]int) window := make(map[byte]int) for i:=0;i<len(t);i++{ need[t[i]] ++ } left, right := 0, 0 valid := 0 // s不一定是字符串,还可以是其他类型的数组 // 如果右指针还没原创 2021-01-24 20:15:15 · 249 阅读 · 0 评论 -
第一章--核心套路篇 之 双指针技巧框架
双指针可以分成两类,一类是快慢指针,一类是左右指针,前者主要解决链表中的问题,比如典型的是判定链表中是否存在环;后者主要是解决数组或者字符串中的问题,比如二分搜索快慢指针的常见算法1.判定链表中是否存在环判断一个链表是否存在环的一个直接了当的方式就是设置一个map表,不断访问链表,如果访问的元素出现了重复,那么链表中便存在环,否则如果访问到了null,便不存在环,伪代码如下:type Node struct{ Data interface{} Next *Node}func hasCy原创 2021-01-24 11:47:29 · 194 阅读 · 0 评论 -
第一章--核心套路篇 之 BFS算法套路框架
BFS算法套路框架BFS(Breath First Search)和DFS(Depth First Search) 是两种十分常用的算法,其中DFS算法可以认为是回溯算法BFS算法和核心就是将问题抽象成图,从一点开始进行扩散,一般来说写BFS的时候均使用队列,每次将一个结点周围的所有结点加入到队列中BFS相对于DFS的主要区别是:BFS找到的路径一定是最短的,但代价是空间复杂度比DFS高算法框架func BFS(start Node, target Node) { // 假设Queue是已经实原创 2021-01-22 20:47:42 · 316 阅读 · 0 评论 -
第一章--核心套路篇 之 回溯算法解题套路框架
解决一个回溯问题,实际上就是一个决策树的遍历过程,需要考虑下面的三个要素:路径:已经做出的选择选择列表:当前可以做出的选择结束条件:达到决策树底层,无法做出选择的条件代码框架如下:var result []路径 // 保存结果的数组func backtrack(路径,选择列表){ if 满足结束条件{ 加入到result中 return } for _, 选择 := range 选择列表{ // 做出选择 路径 = append(路径, 选择)原创 2021-01-22 20:39:14 · 195 阅读 · 0 评论 -
第一章--核心套路篇 之 动态规划解题套路框架
首先动态规划问题的一般形式就是求最值,动态规划其实是运筹学中的一种最优化方法,只不过在计算机中的应用比较多,比如求最长递增子序列,最小编辑距离等既然是求解最值,核心问题就是穷举,因为要求最值,肯定要把所有可行的解全部穷举出来,然后在其中寻找最值,遇到最值问题,就要思考如何穷举所有可能结果。动态规划的穷举与一般的穷举有所不同,因为这类问题存在重叠子问题,如果暴力穷举,效率极其低下,所以需要使用备忘录或者dp table来优化穷举过程,避免不必要的计算动态规划类问题一定会具有最优子结构,这样才能通过子原创 2021-01-22 10:54:05 · 175 阅读 · 0 评论 -
Latex 常用数学符号
希腊字母表示法符号\alphaα\alphaα\etaη\etaη\nuν\nuν\tauτ\tauτ\betaβ\betaβ\thetaθ\thetaθ\xiξ\xiξ\upsilonυ\upsilonυ\gammaγ\gammaγ\iotaι\iotaι\phiϕ\phiϕ\deltaδ\deltaδ\kappaκ\kappaκ\piπ\piπ\chiχ\chiχ原创 2021-01-20 11:45:16 · 638 阅读 · 0 评论 -
椭圆曲线加法原理计算
公式定理这里我们仅考虑素域Fp(p>3)F_p(p>3)Fp(p>3)上的椭圆曲线,因为素域FpF_pFp的特征不为2,3,所以素域FpF_pFp上的椭圆曲线E的WeierstrassWeierstrassWeierstrass方程可设为E:y2=x3+a4x+a6E: y^2 = x^3 + a_4x + a_6E:y2=x3+a4x+a6其判别式Δ=−16(4a43+27a62)≠0\Delta=-16(4a_4^3+27a_6^2)\neq0Δ=−16(4a43原创 2021-01-03 08:32:59 · 5966 阅读 · 1 评论 -
并行和并发的区别
并发不是并行,并行也不是并发并行:并行是指不同的代码片段在不同的物理处理器上同时执行。 通俗些来讲就是我在看书的同时你在打游戏????,你我便是不同的物理处理器,看书是在我这里执行的,打游戏是在你那执行的并发:并发是指不同的代码片段在同一个物理处理器上执行。比如说你在看书的同时在打游戏????, 你就是这个物理处理器,看书和打游戏是两个不同的代码执行片段...原创 2020-08-30 12:09:28 · 76 阅读 · 0 评论 -
tqdm 简介及正确的打开方式
tqdm 简介及正确的打开方式查遍了网上资料,发现绝大中文的讲解全都是一手带过,还称详细,真是醉了,于是有该文,也算给自己做个笔记1. 什么是tqdm?tqdm是一个快速的,易扩展的进度条提示模块,官方网站点击这里但是为什么要取名为这样呢,官方上说:tqdm derives from the Arabic word taqaddum (تقدّم) which can mean “...原创 2020-03-13 12:03:34 · 19677 阅读 · 5 评论 -
git 删除文件的几种形式
1. 删除git add 的文件git rm --cached file2. 删除 git commit 后的文件返回到上一次commit的git reset --hard HEAD^ 返回到上n次git reset --hard HEAD~n参数可以使用--soft 撤销git commit,不撤销git add--hard 撤销git commmit 以及 git...原创 2020-03-12 00:07:36 · 197 阅读 · 0 评论 -
django中导入现有数据库但是无法获取到数据
刚开始接触的时候,使用的是数据库类的实例test = Test()print(test)a = test.objects.all()print(a)输出的:Test object (None)然后就会报错Manager isn't accessible via Test instances...2020-01-27 22:10:21 · 1812 阅读 · 1 评论