自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 算法题的常见类型

douyin LSY_HELLOWORLD,已成功入职互联网大厂,请关注我,了解非科班的程序员的工作生活把

2021-07-16 16:08:10 128

原创 Kubernetes的网络通讯方式

记录于B站尚硅谷教程Kubernetes的网络模型假定了所有的Pod都是在一个可以直接连通的扁平的网络空间中。因此需要先自己实现这个网络模型假设,将不同节点上的Docker容器之间的互相访问先打通,然后再运行Kuberneters。三类同一个Pod内的多个容器之间:loopback不同Pod之间:Overlay NetworkPod与Service之间:各节点的Iptables规则CNI 简介不管是 docker 还是 kubernetes,在网络方面目前都没有一个完美的、终极的、普适

2021-07-18 21:36:46 163 1

原创 Kubernetes的Pod是什么,怎么控制

什么是PodPod是K8S所特有的一个东西,为什么要有Pod首先说一下容器每个容器都是独立存在的,通过namespace进行隔离,每个容器都有自己的IP地址、自己的挂载卷等。如果两个不同的容器相互通信就比较麻烦,通过Pod就会解决这个问题。每个Pod都必须有一个默认启动的pause容器,Pod里的其他容器共用pause的网络栈、挂载卷(可以localhost就可以访问)(个人理解,Pod相当于一个虚拟机,容器相当于里面的进程?)Pod的控制器RepilcationController、Repl

2021-07-17 23:01:47 206

原创 Kubernetes的架构组件说明

APIServer:所有服务访问的统一入口Controller Manager:维持副本期望的数目(副本数据应为大于1的奇数个,投票方便)Scheduler:负责介绍任务,选择合适的节点进行分配任务ETCD:键值对数据库,(高可用,天生支持集群)储存K8S集群所有重要信息(持久化)Kubelet:直接跟CRI,Continer容器引擎(docker等)、Runtime、Interface交互,实现容器的生命周期管理Kube proxy:负责写入规则至 IPTABLES、IPVS实现服务映射访问..

2021-07-17 21:48:25 105

原创 Golang实现并查集,解决分类分门派分省份等按关系分组的问题

解决问题举例1,有不同的金庸笔下的人物,给出不同人物和人物之间的关系如果他们间接都有联系,说明他们属于一本小说里,求这些人属于几本书2,力扣547题,如果不同城市可以间接连同,说明属于一个省份,求一共有几个省份3,忘了哪个公司的真题,吃鸡游戏跳伞的时候可以选择跟随,每个人都跟随一个人,也可以跟随自己,如果一些人都间接跟随,那么他们属于一个团队,求最终落下的会有几个团队。并查集的思想就是,求出来每个人的祖父,将其合并在一起,变成一个祖父;步骤如下:1 将每个人的祖父设为自己2 对于不同的两个人

2021-07-16 15:31:02 248

原创 Golang利用快排思想寻找第K大个数

快排的思想就是寻找一个base,一般令其等于数组第一个元素然后将小于等于base的数放base左边,大于的放右边分别对左边的和右边的数组进行快排递归最后的数组就是完成排序的寻找第K大个数,就是在完成快排的时候,判断当前base所在的位置和所需要的位置的情况,然后每次只快排一半就行啦。代码实现如下:package mainfunc main() { ans := []int{1332802, 1177178, 1514891, 871248, 753214, 123866, 1615

2021-07-16 13:28:24 427

原创 Golang实现层序遍历,并按层将数分组

题目来源牛客练习题层序遍历通过队列来实现,每次将当前节点的子节点添加到队列尾部,再从队列头部取出一个元素即可。此道题目要求按层分成不同的数组,因此多一个步骤,要记录该节点属于的层数。添加一个结构体即可,当队列为空或者当前节点和下一个节点的层数不一样,就将累加的数组添入答案即可。代码如下所示:type data struct { node *TreeNode floor int}func levelOrder(root *TreeNode) [][]int { // write c

2021-07-16 12:51:54 503

原创 golang实现KMP算法,解决长字符串寻找字串是否存在,出现次数等问题

S是子串,T是母串,核心问题就是寻找S在T中出现的情况。如果S长度为m,T长度为n,按照暴力解法,最坏的时间复杂度应该为O(n*m),太高啦。而KMP时间复杂度仅为O(n+m)。KMP算法的核心就是计算出一个next数组,用来存放子串的最长相同前缀后缀。最长前缀视为不包含最后一个字符的所有元素;最长后缀视为不包括第一个字符的所有元素。例如对于abcabcab对于ab 结果为0 没有相同的对于abc 结果为0 没有相同的对于abca 结果为1 前后缀相同为a对于abcab 结果为2 前后缀

2021-07-15 23:01:59 442

原创 golang实现全排列问题,利用回溯算法,以及小坑

针对解决的问题就是全排列例如给个123输出123 132 213 231 312 321利用回溯来解决问题将每一位填一下所有的数,对于下一位未填未填过的所有数。package mainimport "fmt"func main() { //实现全排列 input := []int{5, 4, 6, 2} n := len(input) output := [][]int{} var traceback func(count int, tmp []int, had map[int]

2021-07-14 16:19:59 637

原创 Golang实现字典树,寻找公共前缀的字符串

字典树可以用来解决搜索前缀问题例如给若干个不同长度的字符串找出有公共前缀的字符串有几个面试遇到的或者计算身份证号,同样前缀的身份证号有多少个之前牛客模考遇到的此算法在搜索引擎中非常使用,写了前几个字就会弹出来相关搜索。以及在存储大量有重复前缀的数据时可以节省大量空间。查找的时间复杂度就是O(字符串长度)本质上是个树,因此用链表链接。以下代码用字符串来表示,假设只有26个小写字母。package mainimport "fmt"//结构体根据需要自行设置type tree str

2021-07-13 23:21:01 562

原创 golang的map的里里外外

哈希表首先说说什么是哈希表。哈希表就是通过一个哈希函数,计算出变量的哈希值然后映射到一个桶bucket上。通常有两种方式:取模法:hash&m与运算:hash&(m-1)为了保证与运算的结果不会有空值,m取值应当为2的n次幂。哈希冲突当计算的哈希值映射到同一个桶上,就说发生了哈希冲突,解决办法如下:开放地址法:把第二个值放在冲突的桶下一个桶拉链法:在冲突桶后面链接一个新桶扩容用了/总数=装载因子 0.65超过装载因子,就需要扩容扩容的时候一次性分配足够多的新桶将

2021-07-12 21:05:22 225 2

原创 网际控制报文协议ICMP的左左右右

ICMPInternet Control Message Protocol,用来发送差错报告报文和询问报文。ICMP报文被封装在IP数据报中发送,不使用传输层的TCP/UDP。差错报告报文终点不可达:当路由器或者主机不能交付数据报时,就向源点发送终点不可达报文。距离分为目的网络不可达、目的主机不可达、目的端口不可达、目的协议不可达、目的网络未知等。源点抑制:当路由器或者主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,告诉源点网络拥塞,应该降低发送速率。时间超过:当路由器转发一个数据报时,

2021-07-04 18:44:13 164 2

原创 路由信息协议RIP协议

RIP路由信息协议RIP(Routing Information Protocol)要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录,称为距离向量D-V。RIP使用跳数作为度量来衡量到达目的网络的距离。路由器到直连网络的距离定义为1路由器到非直连网络的距离定义为经过的路由器数目+1允许一条路径最多包含15个路由器,距离等于16相当于不可达因此RIP只适用于小型互联网RIP认为好的路由就是距离短的路有,因此选择通过路由器数量最少的路由。有多条相等数量,就等价负载

2021-07-04 18:11:00 1018

原创 Redis的前前后后左左右右

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。优点运行在内存上,读写性能好,10W/S支持数据持久化支持事务支持主从复制数据结构丰富缺点数据库容量受到物理内存的限制不具备自

2021-07-04 17:09:24 163

原创 goroutine的调度模型

goroutinuegoroutinue是Go为了实现高并发提供的用户态线程,是用户自己管理的,运行在内核线程之上。创建的大量的goruntinue会同时运行在一个或者多个内核线程上,因此需要一个调度器来维护管理这些goroutinue,确保所有的goroutinue都有相对公平的机会适用CPU。goroutinue和内核线程的映射关系为M:N,多个gorotinue可以在多个内核线程上运行。GMP模型调度模型由四部分组成,G、M、P、schedt。G代表goroutinue,每个goroutin

2021-07-04 15:16:00 365

原创 Mysql的相关面试内容

Mysql分为Server和Engine。Server里包含连接器、词法语法分析器、优化器、执行器和缓存等。Engine包括MyISAM InnoDB等插件式引擎。MyISAM基于ISAM引擎,支持全文检索、数据压缩、空间函数,不支持事务和行级锁,只有表级锁。数据和索引分开存储,数据和索引不在一个文件上;索引采用B+树;写的性能差,因为锁的粒度大,写入需要锁整张表。InnoDB支持事务,支持行级锁,支持外键,实现了四种隔离级别。InnoDB的主键索引称为聚簇索引,主键索引和数据一起放在叶

2021-07-03 23:30:41 101

原创 docker

Docker的三大核心概念:镜像、容器、仓库镜像:类似虚拟机的镜像、用俗话说就是安装文件。容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的。仓库:类似代码仓库,是Docker集中存放镜像文件的场所。...

2021-07-03 20:44:28 85

8.《代码随想录》回溯算法(V3.0).pdf

8.《代码随想录》回溯算法(V3.0).pdf

2024-07-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除