堆的原理以及实现O(lgn)

大家好,我是蓝胖子,我一直相信编程是一门实践性的技术,其中算法也不例外,初学者可能往往对它可望而不可及,觉得很难,学了又忘,忘其实是由于没有真正搞懂算法的应用场景,所以我准备出一个系列,囊括我们在日常开发中常用的算法,并结合实际的应用场景,真正的感受算法的魅力。 今天我们就来看看堆这种数据结构。 源

Raft-2023的一些笔记(SJTU-ACM-PPCA & MIT 6.5840)

大概是处于边读边翻译的状态。可以有挺多理解不符合实际情况,接下来读/写的过程中会尽量修正

行为型:迭代器模式

定义 迭代器模式提供一种方法按顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。迭代器模式是目的性极强的模式,它主要是用来解决遍历问题。 es6 中的迭代器 JS原生的集合类型数据结构,有Array(数组)和Object(对象),在ES6中,又新增了Map和Set。四种数据结构各自有着自

漫谈Python魔术方法,见过的没见过的都在这里了

漫谈Python魔术方法,见过的没见过的都在这里了 就说一下,不深入 假的一览 提到魔术方法,学过python都应该知道一些。至少你得会__init__吧。 在我之前写的博文中有很多都涉及魔术方法。比如 浅谈Python中的if,可能有你不知道的,涉及__bool__和__len__ 浅谈Pytho

中国制霸生成器「GitHub 热点速览 v.22.42」

火遍推特的中国制霸生成器本周一开源就占据了两天的 GitHub Trending 榜,不知道你的足迹遍布了多少个省份呢?同样记录痕迹的 kanal 用了内存读写方式解决了 Rust 的消息处理问题,PHP 应用服务 frankenphp 大概也藏了一手自己的“记录”技能。 除了「记录」主题,RedE

你的 GitHub 年度报告「GitHub 热点速览 v.22.52」

辞旧迎新的日子,又是年度报告满天飞的时候。GitHub 也不落其他平台之后,推出了用户 GitHub Contributions 报告。不知道,今年的你是不是比去年搬了更多

【pandas小技巧】--缺失值的列

在实际应用中,数据集中经常会存在缺失值,也就是某些数据项的值并未填充或者填充不完整。缺失值的存在可能会对后续的数据分析和建模产生影响,因此需要进行处理。 `pandas`提供了多种方法来处理缺失值,例如删除缺失值、填充缺失值等。删除缺失值可能会导致数据量减少,填充缺失值则能够尽量保留原始数据集的完整

ctfshow--web入门--文件上传

# ctfshow--web入门--文件上传 [TOC](目录标题) ## web151(前端校验) 题目中提示前端检验不可靠,应该对前端检验进行绕过 ![在这里插入图片描述](https://img-blog.csdnimg.cn/608e51750ded43f2aefc1c2a66a3e803.

算法学习笔记(4): 并查集及其优化

# 并查集 并查集,Disjoint-Set,或者通俗一点,叫做MergeFind-Set,是一种可以动态维护若干个不重叠的集合,并支持集合之间的合并与查询的数据结构。 集体来说,并查集支持下列两个操作: - Find,查询元素所属集合 - Merge,将两个元素所属集合合并 一般来说,为了具体实现

Gin 获取请求参数

1、获取URL?后的参数(不区分请求方式) // 获取请求url ? 后的参数(url:8080/add?name=kelvin) func GetUrlParam(ctx *gin.Context) { name := ctx.Query("name") defaultName := ctx.De

一键上手时下最火AI作画工具

摘要:在华为云ModelArts上, 无需考虑计算资源、环境的搭建,就算不懂代码,也能按照教程案例,通过Stable Diffusion成为艺术大师。 本文分享自华为云社区《跟着华为云ModelArts,一键上手时下最火AI作画工具》,作者:华为云社区精选 。 AI作画为什么最近特别火,AI作画现在

想会用synchronized锁,先掌握底层核心原理

摘要:synchronized锁修饰方法和代码块时底层实现上是一样的,但是在修饰方法时,不需要JVM编译出的字节码完成加锁操作,而synchronized在修饰代码块时,是通过编译出来的字节码生成的monitorenter和monitorexit指令来实现的。 本文分享自华为云社区《Synchron

Split to Be Slim: 论文复现

摘要:在本论文中揭示了这样一种现象:一层内的许多特征图共享相似但不相同的模式。 本文分享自华为云社区《Split to Be Slim: 论文复现》,作者: 李长安 。 Split to Be Slim: An Overlooked Redundancy in Vanilla Convolution

7种创建方式,带你理解Java的单例模式

介绍创建Java单例对象的七种方式,重点掌握哪些创建方式是线程安全的,哪些方式是线程不安全的,并能够在实际项目中灵活运用设计模式,编写可维护的代码。

Elasticsearch与Clickhouse数据存储对比

Elasticsearch的查询语句维护成本较高、在聚合计算场景下出现数据不精确等问题。Clickhouse是列式数据库,列式型数据库天然适合OLAP场景,类似SQL语法降低开发和学习成本,采用快速压缩算法节省存储成本,采用向量执行引擎技术大幅缩减计算耗时。所以做此对比,进行Elasticsearch切换至Clickhouse工作。

Flutter热更新技术探索

APP发布到市场后,难免会遇到严重的BUG阻碍用户使用,因此有在不发布新版本APP的情况下使用热更新技术立即修复BUG需求。原生APP(例如:Android & IOS)的热更新需求已经比较成熟,但Flutter技术栈目前还缺少类似的技术方案,因此Flutter研发团队,也需要类似的热更新技术。

C#爬虫开发小结

前言 2023年以来一直很忙,临近春节,各种琐事更多,但鸽了太久没写文章总是不舒坦,忙中偷闲来记录下最近用C#写爬虫的一些笔记。 爬虫一般都是用Python来写,生态丰富,动态语言开发速度快,调试也很方便 但是 我要说但是,动态语言也有其局限性,笔者作为老爬虫带师,几乎各种语言都搞过,现在这个任务并

基于.NetCore开发博客项目 StarBlog - (27) 使用JWT保护接口

## 前言 这是StarBlog系列在2023年的第二篇更新😂 这几个月都在忙,更新变得很不勤快,但是拖着不更新我的心里更慌,很久没写,要开头就变得很难😑 说回正题,之前的文章里,我们已经把博客关键的接口都开发完成了,但还少了一个最关键的「认证授权」,少了这东西,网站就跟筛子一样,谁都可以来添加

敏捷价值流管理

唉?团队的效率好像并没有提升啊,这不和以前一样吗……

一文详解扩散模型:DDPM

我们要介绍的扩散模型的理论基础和非常重要的DDPM,扩散模型的实现并不复杂,但其背后的数学原理却非常丰富。在这里我会介绍这些重要的数学原理,省去了这些公式的推导计算,如果你对这些推导感兴趣,可以学习参