- 博客(15)
- 资源 (14)
- 收藏
- 关注
原创 卡塔兰数介绍与应用
卡塔兰数介绍与应用1. 前言2. 公式3. 推理过程4. 代表性问题4.1 出栈顺序4.2 n对括号正确匹配数目4.3 给定节点组成二叉搜索树5. 总结1. 前言最近在leetcode上锻炼算法题的时候,偶然看到一篇介绍卡塔兰数的文章,在这之前其实已经简单的了解过卡塔兰数以及与之相关问题,温故而知新,借此机会重新整理和总结一下,同时自己也手动写出了递推公式的推理过程,毕竟很多人第一次看到卡塔兰的递推公式时,都会有疑问,这条公式是怎么来的。2. 公式3. 推理过程4. 代表性问题4.1 出栈顺
2021-03-23 00:04:25
425
原创 跳跃表(Skip Links)实现(Golang版)
跳跃表(Skip Links)实现(Golang版)1. 介绍跳跃表(Skip Lists)是一种随机化的数据, 由 William Pugh 在论文《Skip lists: a probabilistic alternative to balanced trees》中提出, 跳跃表以有序的方式在层次化的链表中保存元素, 效率和平衡树媲美 —— 查找、删除、添加等操作都可以在对数期望时间下完成, 并且比起平衡树来说, 跳跃表的实现要简单直观得多。2、跳跃表在Redis中的应用Redis...
2020-12-24 17:54:25
1019
5
原创 深入理解Freecache
Freecache源码分析简介freecache项目版本freecache架构设计简介freecache是Golang版的本地缓存库,从github项目介绍看,该框架相比与Golang的Map,具有一下的优势:能存储数亿条记录(entry) 。零GC开销。高并发线程安全访问。纯Golang代码实现。支持记录(entry)过期。接近LRU的替换算法。严格限制内存的使用。提供一个测试用的服务器,支持一些基本 Redis 命令。支持迭代器。由于项目要求,需要利用缓存技术来降低API延迟
2020-09-06 21:43:47
4547
2
原创 Golang使用函数来实现接口
使用函数来实现接口实现例子结合匿名函数、闭包的实现实践总结实现例子假设我们定义一个日志打印的接口ILogger,还有一个工厂方法ILoggerFactory。结合匿名函数、闭包的实现实践总结
2020-08-07 00:07:16
1467
2
原创 Golang Option模式
Golang Option模式创建对象的“构造方法”使用Option模式来改造代码什么是Option模式如何使用Option模式关于Option使用的小建议创建对象的“构造方法”相信了解过C++、Java等面向对象语言的人都知道,这类编程语言都会通过类的构造方法来创建对象,这些编程语言都允许定义多个相同名称但参数类型、参数个数不同的构造方法,来实现不同场景下的对象创建。例如如下提供的简单的Java例子,Student类就提供了三个构造器,这里假设一个学生对象,必须要有id和name属性,addr和age
2020-08-05 22:58:42
1263
原创 Golang 实现Thrift客户端连接池
Golang 实现Thrift客户端连接池前言Thrift版本连接池功能如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言阅读文章之前,请先了解一下thrift基本知识Thrift版本Thrift Golang库版本: 0.13.0Thrift IDL编辑器版
2020-06-22 11:33:32
1848
原创 go语言学习-if/else
一般介绍:go的if/else流程控制语句和其他语言(Java、C等)的用法其实才不多,需要注意的是:(1)、对于if,条件语句不需要使用括号将条件包含起来。例如:if a > 10 { fmt.Println(a);}(2)、左括号{必须与if处于同一行。这一点是也是Go的独到之处,Go将代码的风格强制统一到语言级别,例如以下为合法的Go代码:if a > 10
2017-11-22 11:06:39
8681
原创 go语言学习-for循环
一般介绍: go只支持for循环结构,不支持while关键字的循环结构。 for循环最基本的结构形式:for condition {code} i = 1 for i < 5 { fmt.Println(i); i ++; } 代码示例:注:本文参考go by e
2017-11-19 10:46:53
2329
原创 go语言学习-常量
一般介绍: go常量和C语言的常量有点类似,也是用const关键字来声明一个常量,常量的类型可以为字符(character)、字符串(string)、布尔值(boolean)还有数值(numeric)。可以进行var变量声明的地方,都可以声明const常量。 值得注意的是,数值类型的const常量,是没有确切的类型的(比如int64,float64等),当然两个数值
2017-11-18 10:35:04
411
原创 go语言学习-变量
1、一般介绍 定义变量使用的关键字:var。 定义变量的一般形式:var 变量名[变量名2,变量名3......] 变量类型 = 初始化值[初始化值2、初始化值3......]。 其中初始化部分(= 初始化值[初始化值2、初始化值3......])可选,如果没有初始化部分,默认为对应变量类型的“零值”,比如,int类型的零值
2017-11-17 10:15:35
251
原创 Linux学习总结
码神五天学习总结 很快,这趟不可思议之旅结束了,我在码神的Linux学习之路即将告一段落,但是我知道,我对Linux的学习只是刚刚开始,还有很多东西需要我自己去学,而且这五天里,楠哥给我展现的风景我还没有欣赏完。对,带着欣赏风景的心情去学习,怎么会学不好? 说真的,我一直以为来上培训课就是每天都在学技术,直到上课第一天开始,我才发现这里不是这样的,智商要提
2016-08-01 12:34:41
516
原创 Linux学习之路(二)
码神第二天 很多时候,我们都是从零开始学习,就像我开始学习Linux的时候,也是从零开始。从零开始学,我们会发现,这个过程即神奇,又伴有痛苦感,学习的过程中,有时候我们会卡在某一个地方,觉得很痛苦,很难,导致跟不上讲课老师(楠哥导游)的节奏,这时候,就很容易产生一种错觉,就是我们今天什么都没有学到,Linux好难啊,慢慢的,失败感会使我们失去继续学习的热情,甚至
2016-07-31 15:13:38
504
原创 Linux学习之路(一)
认识虚拟机一、认识各种网络连接(1)、桥接模式:实现虚拟机、物理机、办公网络上的主机三者之间的相互通讯。简单来说就是虚拟可以访问物理机和外部主机,外部主机和物理机可以访问虚拟机。(2)、NAT模式:虚拟机可以访问物理机和办公网络上的主机,物理也可以访问虚拟机,但是外部网络上的主机不能访问虚拟机。(3)、仅主机模式:只是实现虚拟机和物理机之间的相互通讯。(4)、自定义(特定虚拟机
2016-07-31 15:09:08
288
原创 Linux学习之路(四)
电影观后感 同一部电影,不同人,看到的风景就不一样。今天,我尝试了一下最后一个上去分享我看完电影之后的感受,说真的,我看到了新的风景。以前的我总喜欢第一个上去分享我看到的东西,我总想把我看到想到的东西说给别人听,我总认为我站在上面讲话,别人就应该放掉手头的事情来听我演讲,甚至把别人应该听我说话当作成一件必须发生的事情,我总认为别人应该在我讲完之后给我掌声,一切的一切,都是
2016-07-30 18:29:36
304
原创 Linux学习之路(三)
码神第三天作业1、用户组与权限管理A、新增4个用户u1 u2 u3 u4.并查看配置文件是否账号增加成功。禁用u2,测试效果;再重新启u2,测试效果;B、删除账号u1及家目录。C、修改u3的密码为:mashenD、新增组g1,g2,把用户u2加入g2组,并把g1组删除了。E、使用root用户新建文件aa,并在aa中使用vi编辑器写入“welcome to java5!”。
2016-07-28 09:07:41
463
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人