AI时代,理解快速排序的不同思路 快速排序是实际应用中最快的通用排序算法,基于分治思想和分区策略。理解它的多种实现思路,不仅能帮你理解排序算法,更能让你在AI时代真正驾驭代码生成工具,写出有深度、有思考的程序。 为什么AI时代还要手写快排? AI可以几秒生成一段快排代码,但它并没有告诉你下面的3个问 ...
这个程序只包含了所需要的函数,而且都比较简单 并且没有详细注释 包含了创建,初始化,销毁,清空,获取元素个数,查找特定元素,删除指定元素,插入,查看是否为空,取出特定元素 #include<iostream>//一个简易的伪通用顺序存储的线性表 #include<cassert> #define O ...
过去的章节 再学串串(一):我真的学会 KMP 了吗?评「clx201022 式的傲慢」 再学串串(二):AC 自动机不是自动 AC 机 再学串串(三):被构造自动机上计数 DP 题吓晕 再学串串(四):后缀是后缀的后缀是后缀的后缀 再学串串(五):谁会不喜欢可爱的小马(拉车)呢? 再学串串(六): ...
MiniMax M3刚发布(2026-06-01),SWE-Bench Pro 59%超过GPT-5.5。MonkeyCode第一时间接入——免费使用,编程能力天花板。 这个组合为什么强? MonkeyCode = 最全的免费AI编程平台 MiniMax M3 = 编程能力最强的开源模型 两者结合: ...
安全不是事后的补丁 很多项目上线后才做安全审计,发现SQL注入、XSS、硬编码密码……这时候修起来成本极高。如果能在开发阶段就用AI自动检测常见漏洞,安全左移不是空话。 这篇文章用MonkeyCode实现自动化的代码安全审计工具,覆盖OWASP Top 10。 给MonkeyCode的Prompt ...
子序列自动机 基本概念 子序列自动机 是一种高效处理 子序列匹配 问题的数据结构。 核心思想: 预处理出从每个位置 \(i\) 开始(包括 \(i\) ),每个字符 \(c\) 下一次出现的位置。 定义: n: 字符串 \(s\) 的长度。 \(\sum\) : 字符集大小。 nxt[i][c]: ...
一、Dijkstra算法简介 Dijkstra算法主要用于计算有权图的单源最短路径,Dijkstra算法的特点是从source结点开始,采用贪心算法的策略,每次贪心求得未访问的结点中,到source结点距离最近的结点(此时仍然有未访问的结点与source结点直接或间接相连,如果此时没有任何一个结点与 ...
## 其他
再更多奇技淫巧就需要用到一些高级算法或数据结构了。(我不会)
- [诡异多项式科技](https://www.luogu.com.cn/article/n3mf4mdw)
- [炫酷后缀树魔术](https://www.luogu.com.cn/article/nre3vsql)
-... ...
Go 字符串查找的 20 种实现方式,用不同思路解决问题 字符串查找(在主串中找模式串第一次或全部出现的位置)是最常见的算法。看似只要一行 strings.Index,但背后有几十年的算法演进——同一个任务,朴素算法 O(m×n),KMP 是 O(m+n),Boyer-Moore 在自然文本上接近 ...
对于算法竞赛中最大子段和问题总结三种不同的做法,并比较三种做法的优劣。进而探讨最大子段和问题的本质,并以一道变体题为例深入研究 ...
常见的数据结构 栈(Stack):栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。 队列(Queue):队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。 数组(Array):数组是一种聚合数据类型,它是将具有相 ...
以防你不知道,本文的标题灵感来自于木又寸寸又木。 至于括号为什么也翻转……灵感可能来源于哥群周刊罢。 过去的章节节章的去过 再学串串(一):我真的学会 KMP 了吗?评「clx201022 式的傲慢」 再学串串(二):AC 自动机不是自动 AC 机 再学串串(三):被构造自动机上计数 DP 题吓晕 ...
TypeScript 数组去重的 20 种实现方式,用不同思路解决问题 数组去重是最常见的编程算法,非常简单,但也可以有很多的实现方案。TypeScript 在 JavaScript 的基础上加了静态类型,让通用工具函数可以用泛型写一次、对所有可比较类型可用。本文整理 TS 数组去重的 20 种写法 ...
AI时代,基于Ontology本体论的大数据底层结构分析 本文面向架构师、数据工程师、AI 应用开发者。讨论的问题是:在企业 AI 大量落地的今天,Palantir 这家公司被反复提及,背后并非它的模型能力,而是它二十年来构建的一种底层数据结构——Ontology(本体)。本文探讨究竟什么是Onto ...
因为是赛马娘拉车,所以先于 SA 出来了——绝对不是因为不会 SA 什么的(大嘘)。
可能有点水()五一集训去了加之回来五一假回来要期中考,再加上最近状态不太好去看心理医生了所以这次含水量可能有点高。 ...
Go数组去重的20种实现方式,用不同思路解决问题 数组去重是最常见的算法。看似简单,但不同实现方式的性能差异可能高达几百倍。本文整理 Go 数组和切片去重的 20 种写法,按 5 个策略分类,帮你理解每类的核心思路。AI时代,可以不手写代码了,但需要知道代码背后的原理,这样才能更好地指导AI编程。 ...
Java 数组去重的 20 种实现方式,理解不同解决问题的思路 数组与列表去重是最常见的算法。看似简单,但不同实现方式的性能差异可能高达几百倍。整理Java数组去重的20种写法,按5个策略分类,帮你理解每类的核心思路。AI时代,可以不写代码,但需要理解不同解决问题的方式。 为什么性能差异这么大? 最 ...
传送门 赛时开出来的 C: Size Comparison 糖丸了模拟题,要求输出Bigger,输出了larger,吃了罚时 点击查看代码 #include<bits/stdc++.h> using namespace std; using ll=long long ; const int maxn ...
【合并已排序数组的三种实现策略,哪一种更可取?】 说明 合并两个已排序的数组,这在算法中经常遇到,特别是在归并排序算法中。这里分析下几种实现策略。 三种实现策略 策略一:双指针法 思路:使用两个指针分别指向两个数组,同时遍历比较 优势:时间复杂度最优,逻辑清晰 适用场景:大多数情况下的首选方案 策略 ...
1. 算法简介 插头 DP 常用于网格图的 DP 中。其核心在于设计如下几部分: 分界线的设置。 插头状态的定义。 合并和延伸插头的转移。 其中,分界线的设置其实规定了 DP 转移的顺序,区别于状压 DP,插头 DP 通常是对每个格子而非整行转移;而插头状态的定义则代表着转移过程中前驱状态对后继的影 ...