- 博客(304)
- 收藏
- 关注
原创 面试算法高频02-树
前序遍历、中序遍历和后序遍历是二叉树的三种常见遍历方式,它们的定义和特点如下:这三种遍历方式都是基于递归的思想实现的,在实际应用中,可以根据具体需求选择合适的遍历方式来处理二叉树相关的问题。同时,也可以通过栈或其他数据结构将递归遍历转换为非递归的形式进行实现。二叉搜索树二叉搜索树(Binary Search Tree,BST) ,也叫二叉查找树、二叉排序树 ,它要么是空树,要么是满足以下性质的二叉树:对二叉搜索树进行中序遍历(左子树 - 根节点 - 右子树 ),会得到一个递增的有序序列 。这种结构在数据
2025-04-04 11:17:09
948
原创 面试算法高频01
双指针法:通过贪心策略避免暴力枚举,线性时间内找到最优解。移动规则:每次移动较短的指针,确保可能找到更高的柱子。正确性:虽然跳过了部分情况,但最优解一定在移动路径中被覆盖。该解法在时间和空间上均达到最优,是解决本题的经典方法。双指针法:通过j指针记录非零元素的位置,确保非零元素按顺序排列。原地操作:直接修改原数组,避免额外空间开销。高效性:仅需两次遍历,满足题目要求的最少操作次数。该解法在时间和空间上均达到最优,是解决本题的经典方法。动态规划。
2025-04-04 09:55:03
863
原创 golang map扩容随笔
所以,Go map 的初始桶数是从 1 开始的(2^0),但具体数量会根据初始化时的 hint 参数动态调整。这种设计既节省内存又保证了性能。这种设计保证了 map 在各种场景下都能保持良好的性能,同时通过渐进式扩容避免了性能抖动。
2025-04-04 09:13:40
331
原创 微信抢红包系统架构设计(春节高并发场景)
采用,在发红包时预先计算所有红包金额并存储为有序链表,抢红包时直接按顺序分配,避免实时计算压力。100元分5个包 → 拆分后存储为。
2025-03-16 11:44:45
402
原创 golang recover错误
某些底层系统错误(如栈溢出、内存段错误)可能绕过Go的。,可以优雅处理局部错误,但需理解其局限性以避免误用。如切片越界、类型断言失败、空指针解引用等运行时。技术上可捕获,但程序状态可能损坏,需谨慎处理。但程序可能处于不可信状态,继续执行需谨慎。抛出自定义类型(如结构体或错误接口),每个goroutine需独立处理自己的。,主goroutine无法捕获。或发生致命错误(如内存耗尽),函数中调用有效,且必须位于触发。且未被捕获,程序仍会崩溃。主动抛出的错误,只要在。的同一函数调用栈中。机制,直接终止程序。
2025-03-11 11:55:25
397
原创 golang中具有 “no copy“的类型
在 Go 语言中,某些类型由于特殊用途或底层实现,可能会被标记为 “no copy”,即它们不能被复制,通常是因为复制会导致意外的行为或错误。这些类型主要包括:2. 原因: 依赖于 ,如果复制,会导致多个 变量竞争同一个锁。示例:3. 原因: 用于确保某段代码只执行一次,复制 可能导致相同的初始化逻辑执行多次。示例:4. 原因: 维护一个内部计数器,拷贝后多个 可能操作同一个计数器,导致错误。示例:5. 原因: 是一个对象池,拷贝会导致多个 可能
2025-03-09 17:34:57
514
原创 深入理解sync pool
Pool 并没有直接使用 poolDequeue,原因是它的大小是固定的,而 Pool 的大小是没有限制的。因此,在 poolDequeue 之上包装了一下,变成了一个 poolChainElt 的双向链表,可以动态增长。字段 pad 主要是防止 false sharing。poolChain 是一个双端队列的实现。
2025-03-07 16:46:22
867
原创 9.三重积分、线面积分、场论初步 练习
格林定理将平面上的线积分与区域上的二重积分联系起来。具体来说,对于一个向量场FPxyQxyFPxyQxy))和一个简单闭合曲线CCC围成的区域DDD,有:1. 核心概念与数学表达梯度(Gradient)定义gradf∇f∂f∂x∂f∂y∂f∂zgradf∇f∂x∂f∂y∂f∂z∂f。
2025-02-24 23:26:10
713
原创 9.三重积分、线面积分、场论初步(基础知识)(二)
格林公式是向量微积分中的一个基本定理,它将平面上的一个闭合路径上的线积分与该路径所围成区域内的二重积分联系起来。下面是格林公式的推导过程。设 $ C $ 是一个正定向的简单闭曲线,$ D $ 是由 $ C $ 围成的区域。如果函数 $ P(x, y) $ 和 $ Q(x, y) $ 在 $ D $ 上有连续的一阶偏导数,则有:∮CP dx+Q dy=∬D(∂Q∂x−∂P∂y) dA\oint_C P \, dx + Q \, dy = \iint_D \left( \frac{\partial Q}{\p
2025-02-23 21:07:54
285
原创 [python]cook_book 第八章 类与对象
实现一个类,除了使用init() 方法外,还有其他方式可以初始化它“”“方法一:使用类方法”“”definitdef today(cls): ## 这里是关键 传入 clst4 = Number(0.6) # 创建一个数值节点newdefinit(self):else:definit。
2025-02-19 09:18:58
664
原创 9.三重积分、线面积分、场论初步(基础知识)(一)
9.三重积分、线面积分、场论初步1. 三重积分三重积分的概念与性质三重积分的定义设 f(x,y,z)f(x,y,z)f(x,y,z) 是有界闭区域 Ω\OmegaΩ 上的有界函数。将闭区域 Ω\OmegaΩ 任意分成 nnn 个小的闭区域 Δv1,Δv2,⋯ ,Δvn\Delta v_1, \Delta v_2, \cdots, \Delta v_nΔv1,Δv2,⋯,Δvn,在每个 Δvi\Delta v_iΔvi 上取一点 (ξi,ηi,ζi)(\xi_i, \eta_i, \zeta_
2025-01-14 22:32:16
580
原创 8.向量代数和空间解析几何基础知识
如图4.1所示,在平面坐标系xOy的坐标平面上,过原点加上垂直于该平面的第三根坐标轴z轴,就构成了空间的直角坐标系Oxyz。它使空间的一个点P与其坐标x0y0z0建立了一一对应的关系。
2025-01-04 12:01:49
995
原创 7. 第七章 无穷级数基础知识
10 无穷级数收敛域1. 解题过程:求 ∑n=1∞(−1)nnxnn!\sum_{n=1}^\infty (-1)^n \frac{\sqrt{n} x^n}{n!}∑n=1∞(−1)nn!nxn 的收敛半径我们要求以下级数的收敛半径:∑n=1∞(−1)nnxnn!\sum_{n=1}^\infty (-1)^n \frac{\sqrt{n} x^n}{n!}∑n=1∞(−1)nn!nxn。1. 用比值判别法分析收敛性设一般项为:an=(−1)nnxnn!a_n = (-1
2024-12-29 23:18:06
433
原创 7.无穷级数收敛域习题
(1) ∑n=1∞xnn(n+1)\sum _ { n = 1 } ^ { \infty } \frac { x ^ { n } } { n ( n + 1 ) }∑n=1∞n(n+1)xn求解幂级数和函数计算下列幂级数的和函数:∑n=1∞xnn(n+1)\sum_{n=1}^\infty \frac{x^n}{n(n+1)}n=1∑∞n(n+1)xn解题步骤第一步:分拆原级数将原级数分拆为两部分:∑n=1∞xnn(n+1)=∑n=1∞xnn−∑n=1∞x
2024-12-29 23:17:04
714
原创 《思考,快与慢》丹尼尔.卡尼曼 总结
系统1:系统2:两个系统的协作关键思维误区在这一章中,卡尼曼还强调了一些常见的思维误区,例如:总结系统1与系统2的角色:瞳孔反应与思维活动:注意力与努力的关系:关键实验与案例:总结:惰性思维与延迟满足的矛盾:系统1与系统2的互动:认知负荷与决策:意外与预期:总结:联想的神奇力量:框架效应与决策:认知偏差的影响:联想与创造力:总结:直觉与错觉:案例分析:提高判断准确性:意外事件的影响:预期与现实:情感与决策:启发式思维:代表性启发式:案例研究:总结:系统1与系统2的分工:思维发散性:关键实例:总结:启发性问题
2024-12-28 22:31:13
422
原创 polars_learn
map函数将表达式所支持的Series数据原封不动的传递map函数在select和groupby中遵循相同的规则这将意味着Series代表DataFrame中的一个列在groupby情况下,该列还没有被分组map的使用情况很有限。它们只用于性能方面,但很容易导致不正确的结果print(out)s = pl.Series("a", [1, 2, 3, 4, 5]) # 构建Series。
2024-04-10 16:11:22
607
原创 [python]cook_book 第七章 函数
7.1 可接受任意数量参数的函数你想构造一个可接受任意数量参数的函数让一个函数接受任意数量的位置参数,可以使用一个*参数为了接受任意数量的关键字参数,使用一个以**开头的参数某个函数能同时接受任意数量的位置参数和关键字参数,可以同时使用*和**一个参数只能出现在函数定义中最后一个位置参数后面,而 **参数只能出现在最后一个参数。有一点要注意的是,在参数后面仍然可以定义其他参数。
2024-04-10 11:06:16
491
原创 [python]cook_book 第四章:手动遍历迭代器
其中一个是 itertools.permutations() , 它接受一个集合并产生一个元组序列,每个元组由集合中所有元素的一个可能排列组成。如果你想从套接字或文件中以数据块的方式读取数据,通常你得要不断重复的执行 read() 或 recv(),并在后面紧跟一个文件结尾测试来决定是否终止。iter 函数一个鲜为人知的特性是它接受一个可选的 callable 对象和一个标记(结尾)值作为输入参数。在多个对象执行相同的操作,但是这些对象在不同的容器中,你希望代码在不失可读性的情况下避免写重复的循环。
2024-03-14 12:38:58
1016
1
原创 [python]matplotlib
Axes 绘图方法,matplotlib.pyplot 模块中有一个相应的函数可以在“当前”轴上执行该绘图,如果它们尚不存在,则会创建该轴(及其父图形。在注释中,需要考虑两点:参数 xy 表示的被注释位置和文本 xytext 的位置,这两个参数都是 (x, y) 元组。plot() 命令提供单个列表或数组,matplotlib 会假定它是一个 y 值序列,并自动为你生成 x 值.默认的 x 向量的长度与 y 相同,但从 0 开始,因此 x 数据为 [0, 1, 2, 3]使用 setp() 命令。
2024-01-01 21:22:15
1423
2
原创 [kubernetes]Kube-APIServer
定义groupGroupName定义groupversion定义SchemeBuildervar (将对象加入SchemeBuilderr!= nil {return err&Pod{},}}List单一对象数据结构• TypeMeta• Spec• Status。
2023-12-25 21:01:25
1249
原创 [kubernetes]控制平面ETCD
➢ 针对每一个object,apiserver和etcd之间的Connection -> stream 共享。对于每一个kubernetes Object,都有对应的storage.go 负责对象的存储操作。前者表示该group的watcher数据都已经同步完毕,在等待新的变更,后者表示该group的。etcd v3 的watch机制支持watch某个固定的key,也支持watch一个范围。• apiserver和etcd之间的通讯基于gRPC。• prevIndex:key当前赋值前的Index。
2023-12-23 16:57:12
1285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人