自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(442)
  • 资源 (4)
  • 收藏
  • 关注

原创 golang算法动态规划

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。

2025-03-16 20:59:58 968

原创 golang算法回溯

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

2025-03-15 17:06:29 972

原创 golang算法二叉的最近公共祖先

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3。

2025-03-14 19:09:50 1024

原创 golang算法二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,3,6]输出:false解释:根节点的值是 5 ,但是右子节点的值是 4。提示:树中节点数目范围在[1, 104] 内。

2025-03-14 16:57:24 843

原创 golang算法二叉树对称平衡右视图

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false示例 3:输入:p = [1,2,1], q = [1,1,2]输出:false提示:两棵树上的节点数目都在范围 [0, 100] 内。

2025-03-13 20:37:03 878

原创 golang算法二叉树递归

给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。示例 1:输入:root = [3,9,20,null,null,15,7]输出:3示例 2:输入:root = [1,null,2]输出:2提示:树中节点的数量在 [0, 104] 区间内。

2025-03-13 11:55:03 931

原创 golang算法前后指针链表

有一个单链表的 head,我们想删除它其中的一个节点 node。给你一个需要删除的节点 node。你将 无法访问 第一个节点 head。链表的所有值都是 唯一的,并且保证给定的节点 node 不是链表中的最后一个节点。删除给定的节点。注意,删除节点并不是指从内存中删除它。这里的意思是:给定节点的值不应该存在于链表中。链表中的节点数应该减少 1。node 前面的所有值顺序相同。node 后面的所有值顺序相同。

2025-03-13 09:57:24 643

原创 golang算法快慢指针

给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:head = [1,2,3,4,5]输出:[3,4,5]解释:链表只有一个中间结点,值为 3。示例 2:输入:head = [1,2,3,4,5,6]输出:[4,5,6]解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。提示:链表的结点数范围是 [1, 100]

2025-03-12 21:59:09 792

原创 golang算法反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

2025-03-12 20:11:42 688

原创 golang算法二分查找

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

2025-03-12 10:57:36 769

原创 golang算法相向双指针

给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

2025-03-11 10:13:36 351

原创 golang算法相向双指针

可以排序+选三四个数满足固定条件。

2025-03-11 09:44:24 343

原创 golang算法滑动窗口

常用于子数组和子串中。

2025-03-10 21:01:27 1036

原创 golang算法单调栈

单调栈用于找上一个更大或者更小的元素。

2025-03-10 17:25:34 827

原创 k8s内存不足问题

删除一些没用的服务,清理空间然后重新部署或者加服务器的cpu和内存。所有nodes占用内存cpu情况。所有pods占用内存。

2025-03-03 13:28:49 333

原创 KubeSphere部署Elastisearch

docker启动命令根据上述命令分析,“discovery.type=single-node"相当于环境变量,ES_JAVA_OPTS=”-Xms512m -Xmx512m"相当于Java设置项,es-config:/usr/share/elasticsearch/config需要进行卷挂载,而/mydata/es-01/data:/usr/share/elasticsearch/data需要进行外部挂载。

2025-03-02 11:25:06 497

原创 golang LeetCode 热题 100(动态规划)-更新中

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

2024-12-24 22:22:38 548

原创 golang LeetCode 热题 100(矩阵)-更新中

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0。请使用 原地 算法。示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

2024-12-24 22:06:14 848

原创 golang LeetCode 热题 100(技巧)-更新中

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

2024-12-24 16:59:29 577

原创 golang LeetCode 热题 100(哈希)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。提示:只会存在一个有效答案进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?

2024-12-24 15:59:13 418

原创 golang 熔断限流降级

限流 - 2k 但是我的服务能力只有1k,所以这个时候多出来的流量怎么办: 1. 拒绝 2. 排队等待。用户体验不太好: 当前访问用户过多,请稍后重试和你的服务直接挂了用户体验降级了 - 原本是访问流畅,下单流畅 -> 当前访问用户过多,请稍后重试熔断 - 比如A服务访问B服务,这个时候B服务很慢 - B服务压力过大,导致了出现了不少请求错误,调用方很容易出现一个问题: 每次调用都超时 2k,结果这个时候数据库出现了问题, 超时重试 - 网络 2k的流量突然变成了3k。这让原本就满负荷的b服务雪上

2024-12-24 11:20:36 902

原创 golang 链路追踪

分布式链路追踪(Distributed Tracing),也叫分布式链路跟踪,分布式跟踪,分布式追踪等等。

2024-12-23 21:41:28 1033 4

原创 golang 幂等性和重试

幂等与你是不是分布式高并发没有关系。关键是你的操作是不是幂等的。一个幂等的操作典型如:把编号为5的记录的A字段设置为0这种操作不管执行多少次都是幂等的。一个非幂等的操作典型如:把编号为5的记录的A字段增加1这种操作显然就不是幂等的。要做到幂等性,从接口设计上来说不设计任何非幂等的操作即可。譬如说需求是:当用户点击赞同时,将答案的赞同数量+1。改为:当用户点击赞同时,确保答案赞同表中存在一条记录,用户、答案。赞同数量由答案赞同表统计出来。

2024-12-22 11:29:24 917

原创 golang rocketmq保证数据一致性(以电商订单为例)

1.所有情况a):本地订单信息创建失败,库存扣减成功(一致)b):本地订单信息新建失败,但是库存扣减成功(不一致)c):本地订单信息新建成功,但是库存扣减失败(不一致)d):本地订单信息新建失败,库存扣减失败(一致)本地数据库直接通过数据库事务就能完成,但是分布式系统跨微服务就很复杂2.可能会出现的问题a):库存扣减成功,本地执行失败-调用库存的归还接口(磁盘满了导致服务宕机、网络出问题调用失败-重试到成功-网络问题比较复杂:抖动、拥塞导致过了一段时间之后才会被接收到?

2024-12-22 10:16:22 1086

原创 golang rocketmq初体验

● Producer:消息的发送者;举例:发信者● Consumer:消息接收者;举例:收信者● Broker:暂存和传输消息;举例:邮局● NameServer:管理Broker;举例:各个邮局的管理机构● Topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic消息● Message Queue:相当于是Topic的分区;用于并行发送和接收消息。

2024-12-20 23:13:24 965

原创 golang 消息队列

一台电脑异步发送短信放在服务器时可以使用mysql解决mysql并发速度不够可以将mysql替换为redis由于redis在本场景下并不强大,进一步将redis替换为mq(消息队列)

2024-12-20 15:02:22 898

原创 ubuntu安装docker和docker-compose

【代码】ubuntu安装docker和docker-compose。

2024-12-20 15:01:33 199

原创 golang基于可靠消息的最终一致性

confirm或者cancel的时候都可能会宕机,但是下一次启动的时候可以读取日志继续没有完成的逻辑,java有seta库,golang有go-seta但不支持grpc。4.本地事务执行成功,通过rollback不发送1准备的消息;本地事务如果失败,通过commit发送1准备的消息通过调用reback逻辑归还库存。7.如果没有查询到本地信息就通过commit发送1准备的消息通过调用reback逻辑归还库存。如果成功执行本地事务。非本地执行失败,本地代码异常,不知道本地执行情况,代码突然挂掉了(磁盘满了)

2024-12-01 21:16:27 431

原创 golang rocketmq开发

同时,传统的大事务可以被拆分为小事务,不仅能提升效率,还不会因为某一个关联应用的不可用导致整体回滚,从而最大限度保证核心系统的可用性。顺序消息分为分区顺序消息和全局顺序消息,全局顺序消息比较容易理解,也就是哪条消息先进入,哪条消息就会先被消费,符合我们的FIFO,很多时候全局消息的实现代价很大,所以就出现了分区顺序消息。普通消息是我们在业务开发中用到的最多的消息类型,生产者需要关注消息发送成功即可,消费者消费到消息即可,不需要保证消息的顺序,所以消息可以大规模并发地发送和消费,吞吐量很高,适合大部分场景。

2024-10-31 15:40:19 1313

原创 golang viper配置文件管理

是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持以下特性:(1)设置默认值(2)从JSON、TOML、YAML()、HCL、envfile和Java properties格式的配置文件读取配置信息(3) 实时监控和重新读取配置文件(可选)(4)从环境变量中读取(5)从远程配置系统(etcd或Consul)读取并监控配置变化(6)从命令行参数读取配置(7)从buffer读取配置(8)显式配置值Viper安装。

2024-10-10 21:32:00 672

原创 golang zap日志库

zap的便捷使用,通过zap.ReplaceGlobals初始后logger之后可以直接通过zap.S()和zap.L()使用zap,S函数和L函数很有用,提供了全局的安全访问logger的途径。在每一微秒和每一次内存分配都很重要的上下文中,使用Logger。日志是分级别的Debug、Info、Warn、Error和Fetal,开发模式所有级别的日志都会打印,生产模式只会打印Info以上的级别的日志。zap生产环境zap.NewProduction()和开发环境zap.NewDevelopment()

2024-10-09 21:24:39 388

原创 golang gin入门

gin是个小而精的web开发框架安装。

2024-10-06 21:35:05 783

原创 golang gorm

举例来说就是,我定义一个对象,那就对应着一张表,这个对象的实例,就对应着表中的一条记录。对于数据来说,最重要最常用的是表:表中有列, orm就是将一张表映射成一个类,表中的列映射成类中的一个类。java 、python,但是针对go语言而言,struct,就是列如何映射,是因为列可以映射成struct中的类型,int->int,但是有另一个问题?当updates函数传递的是结构体时,gorm只更新非零,在更新过程中可以通过传递仅包含个别字段的结构更新字段,就造成了不能直接通过设置各字段的默认值更新内容。

2024-10-05 22:42:42 954

原创 golang grpc进阶

grpc让我们可以像本地调用一样实现远程调用,对于每一次的RPC调用中,都可能会有一些有用的数据,而这些数据就可以通过metadata来传递。metadata是以key-value的形式存储数据的,其中key是string类型,而value是[]string,即一个字符串数组类型。使用的mac电脑,使用官网的第二种第三种都试过了不可以,第二种在$GOPATH:bin找不到protoc-gen-validate文件,第三种能找到但是将proto转换成go文件时会一直报如下错误,最后使用了第一种才成功。

2024-10-03 13:03:16 1390 1

原创 golang grpc初体验

grpc 是一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计。目前支持c、java和go,分别是grpc、grpc-java、grpc-go,目前c版本支持c、c++、node.js、ruby、python、objective-c、php和c#。

2024-10-02 10:38:17 920 1

原创 golang rpc

RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务,对应rpc的是本地过程调用,函数调用是最常用的本地过程调用,将本地过程调用变成远程调用会面临着各种问题。函数调用过程:(1)将1和2压入函数的栈中(2)进入add函数,从栈中取出1和2分别赋值给a和b(3)执行a+b将结果压栈(4)将栈中的结果取出打印1.原本的本地函数放到另外一个服务器上去运行,但是引入了很多新问题2.Call的id映射。

2024-10-01 09:12:47 1444 4

原创 dial tcp: lookup localhost: no such host panic: runtime error: invalid memory address or nil pointer

主要问题是不能将localhost解析为127.0.0.1,将localhost改为127.0.0.1就可以了。一个通过rpc实现客户端和服务端连接的小例子。

2024-10-01 09:02:59 540

原创 golang Get: context deadline exceeded (Client.Timeout exceeded while aw

在浏览器是可以正常访问的,但是使用代码就出现了响应失败的问题,主要是服务端反应速度太慢而客户端请求的超时太小,可以提高服务端的响应速度,也可以增大客户端请求的超时时间,因为只是一个小例子,我采用的方法是增大客户端请求的超时时间。

2024-09-29 12:14:06 740

原创 golang Unicode api接口

还有更复杂的结构得等到遇到之后才能理解😊😊😊。

2024-09-24 22:15:25 805

原创 golang strings api接口

用替换项替换字符串列表。多个 goroutine 可以安全地并发使用。

2024-09-24 11:11:32 733

数据库理论习题.zip

数据库理论习题

2020-05-15

2014CC++B组省赛.zip

2014CC++B组省赛.zip

2020-05-07

2013CC++B组省赛.zip

2013CC++B组省赛.zip

2020-05-07

python基础之对象.zip

python基础之对象.zip

2020-05-04

空空如也

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

TA关注的人

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