从零搭建向量数据库:实现文本语义检索实战 写在最前面:我一开始真没打算“自己搭一个” 说句实话,我第一次接触向量数据库的时候,根本没想过要自己搭一套。 原因也很现实: 市面上已经有不少成熟产品 文档、SDK、Demo 一应俱全 看起来直接用现成的就好 所以一开始我的想法非常简单: 我只需要一个“能做 ...
不用换显卡!大模型微调显存优化实操指南(附代码+效果对比) (一)引言:低显存显卡的“微调困境”怎么破? 大家好,我是七七!之前写过大模型微调显存消耗的核心原因,后台立马炸了——九成粉丝都在说:“博主,道理我懂了,但我只有16G显卡,还是跑不通7B模型,总不能为了微调换48G显卡吧?” 其实这也是我 ...
26. 删除有序数组中的重复项 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k。去重后,返回唯一元素的数 ...
如下知识均来自大话数据结构这本书,作者程杰 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 算法具有五个基本特性: 输入、输出、有穷性、确定性和可行性 1.输入:算法可以有输入,也可以没有 2.输出:算法必须要至少有一个输出 3.有穷性:指算法在执 ...
介绍 像线性数据结构在查找的时候,⼀般都是使⽤= 或者!= ,在折半查找或者其他范围查询的时候,可能会使⽤< 和> ,理想的时候,我们肯定希望不经过任何的⽐较,直接能定位到某个位置(存储位置),这种在数组中,可以通过索引取得元素。那么,如果我们将需要存储的数据和数组的索引对应起来,并且是⼀对⼀的关系 ...
Ⅰ.数据结构 1.树状数组 时间复杂度:\(O(n\log n)\) 优点:常数小 缺点:可以维护的内容不如线段树 应用:小常数维护前缀和或单点值 int tr[200005]; void add(int x,int y){while(x<=n)tr[x]+=y,x+=(-x)&x;} int q ...
今天退役了,根据惯例要写一篇小作文,如果你能能读完这篇小作文,我会很高兴。 这篇小作文会介绍一下我在打 ICPC 期间学过的 LCS 相关的算法,希望能提高大家的理解。 \(\text{LCS}\) 问题:字符集为 \(\Sigma\),你需要求两个字符串 \(A, B\) 的最长公共子序列。 经典 ...
在整数这个崭新的世界里,乘法是畅通无阻的。但它的逆运算——除法,又成了新的不可能任务。6 / 3 = 2,没问题,结果还是个整数。但 3 / 6 呢?2 / 3 呢?1 / 2 呢?在整数的世界里,没有它们的容身之处。 是时候再次启动我们的“创世工具”流水线了。我们将现场展示,如何用完全一样的“有序 ...
网格图转向最短路问题 题目描述 给定一个 \(n \times m\) 的网格,每个格子标记为 A、B 或 C 类型。从起点 \((1, 1)\) 出发,初始方向向右,目标到达 \((n, m+1)\)(网格右侧外一格)且方向向右。 在不同的格子类型中转向有不同的代价规则: A 格:直行不消耗代价, ...
1. 设顺序表中的元素递增有序,编写一个算法,将元素x插入顺序表L中的适当位置,以保持该顺序表的有序性。 void sortInsert(List *l,int x){ //假设表是有序的 if(l->length==MAXSIZE) exit(1);//表已满,无法插入 for(int i=0; ...
安徽京准:国产化北斗卫星对时服务引领全球 安徽京准:国产化北斗卫星对时服务引领全球 京准科技官微——ahjzsz 全国产北斗卫星授时服务器正凭借其高精度、自主可控的特点,成为全球精准时间同步领域一股强大的力量。下面这个表格,概括了它的核心优势: 自主可控 从芯片到接收机、软件系统实现100%全国产化 ...
该笔记系统性介绍树结构知识,核心涵盖二叉树(术语、类型、层序/前中后序遍历、数组表示及C++实现)、二叉搜索树(插入、查找、删除操作及代码)、AVL树(平衡因子、旋转操作及C++实现)等内容,通过概念讲解与代码示例结合,详细阐述了树结构的原理与应用。 ...
首先注意到图是一个 DAG,那么我们考虑什么情况下是合法的。发现首先是 \(1\) 必须是唯一的一个入度为 \(0\) 的点,且所有点的入度不为 \(0\) 即可。虽然直接想到了但是补一个证明: 1.必要性。如果存在一个入度为 \(0\) 且非 \(1\) 的点,那么也就是说没有有向边可以到达,故非 ...
数据结构之队列 什么是队列 队列是和栈一样操作受限的线性表,栈是只允许在线性表的一端进行入栈和出栈操作,而队列是会允许在线性表的一端进行入队,在另外一端进行出队操作 队列的基本操作 bool initQueue(Queue & Q); // 初始化队列 void destroyQueue(Queue ...
// 容易注意到 qiandao(i) = i - phi(i) // phi 是欧拉函数 // 让我们想起最开始求欧拉函数的做法 // 分解质因数, 然后使用 phi(x) = x * 求积_{p in {x 的所有质因数}} (1 - 1 / p) // 这样的时间复杂度显然过大 // 我们何妨 ...
目录引言GapBuffer 基本思想基本操作基于下标映射的标记记录法下标映射搜索维护对比总结 引言 最近笔者正在优化 Android 开源代码编辑器项目 TextWarrior 的一些算法,包括时间、空间两方面。TextWarroir 的文本编辑器算法采用经典的 GapBuffer,其基本思想是利用 ...
这篇文章信息量偏大,请谨慎阅读,注意利用右边的目录。 其他部分咕咕咕地更新中……敬请期待 1.1 二分 & 双指针 关联博文:Atserkcn:0/1 分数规划 P1404 平均数 既然要让子串平均数最大,那就二分平均数,判断能否达到即可。复杂度 \(O(n\log V)\)。 关联题目:[2025 ...
P11164 [BalkanOI 2023] Permutations 思路 先判断是否有解。 即判断区间是否存在三元组 \((p_i,p_j,p_k)(i < j < k)\) 使得 \(p_i > p_j > p_k\);或者二元组 \((p_i,p_j)(i<j)\) 使得 \(p_i > p ...
dp 总结 1 闲来无事, 把刚学明白的 dp 笔记整理一下. shout out to professor Adzlpxsn. upd at oct 16th 2025, 修复了时间复杂度分析的重大失误. 基本的, 状态, 转移, 方程 状态 一句话概况即为当前的属性. 比如说, 贝贝现在是 \( ...
浅谈处理哈希问题的一类方法-线段树维护哈希 前言 一个初三蒟蒻粗浅的认知和总结,dalao不喜勿喷。分享的题也大都很水,仅是代表浅层理解。 简介/概括 哈希是一种常用的算法。我们在oi中使用哈希的主要目的是将难以直接处理、维护、比较的对象映射到范围小/便于维护/便于处理/便于比较的对象上。 映射的方 ...