最近公共祖先(LCA)

## 什么是LCA 最近公共祖先是相对于两个节点来说的,顾名思义,最近公共祖先即为两个节点公共的最近的祖先。 ![image](https://img2023.cnblogs.com/blog/3257810/202308/3257810-20230812133415742-926455766.pn

最短路三种算法详解

# 最短路 最短路问题即,给你一张图,让你求出图中两点的最短距离。 这篇文章会讲解 $Dijkstra$、$Spfa$、$Floyd$ 三种算法,让您透彻理解最短路! ## Dijkstra ### 朴素版 题目: ![image](https://img2023.cnblogs.com/blog/

AcWing - 闫氏DP分析法

核心思想:从集合角度来分析DP问题 在我们遇到的DP问题中,一般都是求在一个有限集内的最值,但是这些方案数量一般都是指数级别的,想要一个一个查找出来不太可能。所以DP方法是用来优化这种寻找最优方案的过程的。 DP问题一般来说分析时都要经过两个阶段: 1. 状态表示(化零为整):指把一些具有相似点的方

3min快速掌握Go语言正/反向代理的姿势

先重温一下什么叫反向代理,正向代理。 鹅厂二面,nginx回忆录 所谓正向/反向代理取决于代理的是出站请求,还是入站请求。 正向代理: 代理的出站请求, 客户端能感知到代理程序,架构上距离客户端更近。 反向代理: 代理的是入站请求,客户端认为代理程序就是服务器,客户端感知不到代理逻辑,架构上距离服务

你认识的C# foreach语法糖,真的是全部吗?

> 本文的知识点其实由golang知名的for循环陷阱发散而来, 对应到我的主力语言C#, 其实牵涉到闭包、foreach。为了便于理解,我重新组织了语言,以倒叙结构行文。 先给大家提炼出一个C#题:观察for、foreach闭包的差异 ![](https://files.mdnice.com/us

摸鱼快报:golang net/http中的雕虫小技

以后会开一个板块,摸鱼快报,快速记录这几周开发中雕虫小技。 1. 向开发环境localhost:3000种植cookie 前端使用Create React App脚手架,默认以localhost:3000端口启动; 后端使用golang-gin框架,使用8034端口启动。 登录模块走的是sso,前后

gopher常见坑位

在我看来,golnag有许多反直观的设计,而且这些设计通常不能自圆其说,导致gohper一而再再而三的调入陷阱。 网上也有很多gohper总结了一些笔记,我再提炼精简一下,挂在脑图树上便于记忆。 值类型包括:所有integer、所有float、bool、string、数组和structure 引用类

流量调度、微服务可寻址性和注册中心

前言 现代计算机基于计算、存储和调度的体系, 于是现代架构都是围绕这三大话题不断演进。 在基础架构部, 也是主要为了解决这三个难题,为业务事业部提供透明的、高可用、可快速伸缩的 三大能力, 我们组主要负责 [流量调度] 这个话题,下面是一些宏观的技术笔记。 在单体结构, 流量调度是直观且无感的(DN

粘包/拆包问题一直都存在,只是到TCP就拆不动了。

OSI open-system-Interconnection TCP/IP 5层协议栈 应用层和操作系统的边界是 系统调用 ,对应到网络编程是socket api TCP/UDP 概况 TCP粘包问题 TCP/IP报头深思 OSI开放系统互联 定义了网络框架,以层为单位实现协议,同时控制权逐层传递

Go编程快闪之 logrus日志库

战术卧倒 golang中常见的日志包是logrus, 根据logrus的胚子和我们的生产要求,给出一个生产可用的logrus实践姿势。 #### 主谓宾定状补 logrus是一个结构化的、可插拔的、兼容golang标准log api的日志库。 快速过一下能力 - 支持对output=TTY增加关键字

自古以来,反射也是兵家必争之地

这几天收到一个战术性需求,将一大坨字段序列化为特定格式的字符串。 大概是下表这样: | 序号 |字段名 | 描述 | 是否必填 | | | | | | | 0|logVersion | 日志版本 | 是 | | 1|productName| 产品 | 是 | | 2|serviceName| 服务

自古以来,同步/异步都是八股文第一章

好久没上线了,今天记录编程中老掉牙的几个关键术语,一个言简意赅的术语定义包含主谓宾定状补, 我们应从貌似雷同的术语中体会到不同术语的表象行为、侧重点。 下面给出的3对技术术语,都是很核心、易混淆的概念点,但是多少还是有些表象、侧重点的不同。 书读百遍其义自见, 请关注最下方给出的微软官方技术文献,

不会写单元测试的程序员不是一个合格的滴滴司机

go内置了一套单元测试机制: 利用` go test测试命令`和一套按照约定发方式编写的测试函数。 在包目录内,所有以_test.go为后缀名编写的go文件不会参与go build的编译过程. > 本文所有的代码均放置了[带缓冲区的异步写日志库](https://github.com/zwbdzb/

golang技术降本增效的手段

最近一年各大中小厂都在搞"优化",说到优化,目的还是"降本增效",降低成本,增加效益(效率)。 技术层面,也有一些降本增效的常规操作。 比如池化、io缓冲区技术 | | golang | C# | eg. | | | | | | | 池化技术 | snnc.Pool | ObjectPool | 前

应届生必考的斐波那契数列 优化版本

- 开题引入斐波那契 - 代码演示: 递归、循环 - 递归 vs 循环 - 时间复杂复高,指数型O(2^n); 推导过程 - 占用线程堆栈, 可能导致栈满异常 - 压测演示 - 20230816补充尾递归 ## 斐波那契数列 打入门软件开发,斐波那契数列便是绕不过去的简单编程算法。 一个老生常谈的思

C# readonly修饰符

readonly修饰符在作祟 强化官方解释: 1. readonly是一个修饰字段的关键字:被它修饰的字段只有在初始化或者构造函数中才能够赋值. 2. readonly修饰的引用类型字段必须始终引用同一对象: readonly 修饰符可防止字段替换为引用类型的其他实例, 但是,readonly不会妨

抓的是周树人,与我鲁迅有什么关系?

单独拎出这个题目,是因为昨天看到一线码农大佬公众号的分享[Dictionary.Clear 和 new Dictionary() 有什么不同?](https://mp.weixin.qq.com/s/JUtr9TFRDfAvEeu6vJkI1w) ### 无心插画 ``` void Example1

<Python全景系列-1> Hello World,1分钟配置好你的python环境

欢迎来到我们的系列博客《Python360全景》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语法。无论你是编程新手,还是有一定基础的开发者,这个系列都将提供你需要的知识和技能。这是我们的第一篇文章,让我们从最基础的开始:如何在你的电脑上配置Python环境。

< Python全景系列-2 > Python数据类型大盘点

Python作为一门强大且灵活的编程语言,拥有丰富的数据类型系统。本文详细介绍了Python中的每一种数据类型,包括数值、序列、映射、集合、布尔和None类型。每种数据类型的特性、使用方式,以及在实际问题中的应用都将被深入探讨。此外,我们还将探讨Python的动态类型特性,以及如何在实际编程中充分利用这些数据类型来简化代码和提高效率。在文章的最后,我还将分享一个可能你还不知道,但非常有用的特性。

< Python全景系列-3 > Python控制流程盘点及高级用法、神秘技巧大揭秘!

全面深入地介绍 Python 的控制流程,包括条件语句、循环结构和异常处理等关键部分,尤其会将列表解析、生成器、装饰器等高级用法一网打尽。此外,我还将分享一些独特的见解和研究发现,希望能给你带来新的启发。文章的结尾,我们将有一个 "One More Thing" 环节,我会分享一个很特别但又很少人知道的有用的 Python 控制流程的技巧。