算法基础课学什么?从零搭建算法知识体系与实战指南

1. 算法基础课到底在讲什么:从零到一搭建算法知识体系

很多人第一次接触算法,脑子里冒出来的第一个念头就是“我是不是得先把数学分析、离散数学、概率论全部啃一遍才能开始”。这个想法不能说错,但绝对会让你在起步阶段就卡死。算法基础课的核心价值,恰恰在于它把那些“前置知识”压缩到了最低限度,用一条相对平滑的路径,把你从“只会写循环和判断”带到“能独立分析问题、选择合适的数据结构与算法、并写出正确代码”的状态。

我见过太多人在算法入门阶段走弯路:有人抱着大部头教材从第一章看到第五章,结果连一道最简单的排序题都写不出来;有人一上来就刷高难度题目,被打击得体无完肤之后彻底放弃。算法基础课的设计逻辑,就是针对这些典型问题,把知识点按照“认知难度”和“使用频率”两个维度重新排列,让你在最短时间内建立起可用的算法工具箱。

这门课适合谁?如果你已经掌握了一门编程语言的基本语法——变量、循环、条件判断、函数、数组——那么你就可以直接开始。不需要你提前学什么高级数据结构,也不需要你有多强的数学背景。当然,如果你对递归、指针、位运算这些概念还比较陌生,那在前期可能会稍微吃力一点,但这完全可以通过边学边补的方式解决。

从内容覆盖范围来看,算法基础课通常会包含以下几个核心模块:基础算法(排序、二分、高精度、前缀和与差分、双指针、位运算、离散化、区间合并)、数据结构(链表、栈、队列、单调栈、单调队列、KMP、Trie、并查集、堆、哈希表)、搜索与图论(DFS、BFS、树与图的遍历、拓扑排序、最短路、最小生成树、二分图)、数学知识(质数、约数、欧拉函数、快速幂、扩展欧几里得、中国剩余定理、高斯消元、组合计数、容斥原理、博弈论)、动态规划(背包、线性DP、区间DP、树形DP、状态压缩DP、数位DP、记忆化搜索)。这个体系不是随便排的,它遵循的是“先工具后应用、先线性后非线性、先确定后优化”的递进逻辑。

我个人的体会是,算法基础课最大的作用不是让你成为竞赛选手,而是帮你建立一种“计算思维”。你会开始习惯性地问自己:这个问题的输入规模有多大?时间复杂度允许我做到什么程度?有没有现成的数据结构可以加速?边界情况有哪些?这些思考习惯一旦养成,你在面对任何编程任务时都会受益。

2. 核心模块拆解与学习路径规划

2.1 基础算法:一切复杂问题的原子操作

基础算法部分看起来简单,但它是后面所有内容的地基。排序算法你可能会觉得“我调用库函数不就行了”,但算法基础课要求你手写快速排序和归并排序,目的不是让你在实际工程中重复造轮子,而是让你理解分治思想、理解递归树的展开过程、理解时间复杂度是怎么算出来的。我在实际做题时发现,很多看起来复杂的问题,拆到最后就是排序加二分,或者前缀和加差分。

二分查找是另一个典型。很多人觉得自己会写二分,但真正写对的人不多。边界条件、中点取值、循环不变量,这些细节在算法基础课里会被反复强调。我建议你在学习二分时,不要只记模板,而是自己画图推导几种不同的区间表示方式,理解为什么左闭右开和左闭右闭的写法会导致不同的边界处理。

高精度运算在Python里可能用不上,但在C++里是必须掌握的技能。大整数加减乘除的实现过程,其实是对数组操作和模拟思想的极好训练。前缀和与差分则是一对互逆操作,前者用于快速查询区间和,后者用于快速修改区间值。这两个技巧在后续的很多题目中都会反复出现,值得你花时间彻底搞懂。

双指针算法表面上简单,但它的应用场景非常广泛:数组去重、两数之和、三数之和、最长连续子序列、滑动窗口等等。核心思想是利用问题的单调性,把O(n²)的暴力枚举优化到O(n)。位运算在算法题里出现的频率也很高,特别是状态压缩和集合表示的场景。你需要熟练掌握与、或、异或、取反、左移、右移这几个基本操作,以及一些常用技巧,比如取最低位的1、判断是否为2的幂、枚举子集等。

2.2 数据结构:从线性到树形的思维跃迁

数据结构部分是从“操作数据”到“组织数据”的思维升级。链表、栈、队列这些线性结构相对直观,但单调栈和单调队列就需要你动点脑筋了。单调栈的典型应用是“下一个更大元素”类问题,单调队列则常用于滑动窗口最值。这两个结构的共同点是:它们都在维护一个“有用元素的集合”,及时淘汰那些永远不会再被用到的元素。

KMP算法是字符串匹配的经典算法,它的核心是next数组的构建。很多人第一次学KMP时会被next数组的定义搞晕,我建议你从“最长公共前后缀”这个角度去理解,然后手动模拟几个字符串的匹配过程。Trie树(字典树)在字符串检索和前缀统计方面非常高效,实现起来也不复杂,关键是理解它的节点结构和插入、查询操作。

并查集是我个人最喜欢的数据结构之一,它的代码极短,但能解决很多看起来复杂的问题:连通性判断、集合合并、亲戚关系推理等等。路径压缩和按秩合并是两个关键优化,能把操作复杂度降到接近常数级别。堆(优先队列)在维护动态最值方面无可替代,手写堆的过程能帮你理解完全二叉树和数组之间的映射关系。哈希表则是工程中最常用的数据结构之一,算法基础课通常会让你手写一个简单的哈希表,理解哈希函数、冲突处理和扩容机制。

2.3 搜索与图论:把问题抽象成图的能力

搜索与图论部分是算法学习中的一个分水岭。DFS和BFS是两种最基本的搜索策略,前者适合“一条路走到黑”的场景,后者适合“层层递进”的场景。树和图的存储方式有两种:邻接矩阵和邻接表。邻接矩阵适合稠密图,邻接表适合稀疏图。在实际做题时,你需要根据数据范围快速判断该用哪种存储方式。

拓扑排序是图论中的一个基础算法,它的应用场景包括课程安排、任务调度、依赖关系解析等。最短路算法有四种常见变体:Dijkstra、Bellman-Ford、SPFA、Floyd。每种算法适用的场景不同:Dijkstra适合非负权图,Bellman-Ford和SPFA适合含负权边的图,Floyd适合多源最短路。你需要理解它们的原理、复杂度以及适用条件,而不是死记模板。

最小生成树有两个经典算法:Prim和Kruskal。Prim适合稠密图,Kruskal适合稀疏图。二分图判定和匈牙利算法是图论中的另一个重要分支,前者用于判断图是否可以被二染色,后者用于求解二分图的最大匹配。这些算法在后续的进阶内容中会反复出现,基础阶段一定要打牢。

2.4 数学知识与动态规划:算法能力的试金石

数学知识部分涵盖的内容比较杂,但每一块都有其典型应用场景。质数筛法、约数个数、欧拉函数这些数论基础,在密码学和组合计数中经常出现。快速幂和扩展欧几里得是解决同余问题的利器。高斯消元用于求解线性方程组,组合计数和容斥原理用于解决计数类问题,博弈论则用于分析公平组合游戏。

动态规划是算法基础课中最难啃的部分,也是最能体现算法能力的部分。背包问题是DP的经典入门,但它的变体非常多:01背包、完全背包、多重背包、分组背包、依赖背包等等。线性DP、区间DP、树形DP、状态压缩DP、数位DP、记忆化搜索,每一种都有其固定的分析套路。学习DP的关键不是背状态转移方程,而是理解“状态定义”和“状态转移”这两个核心概念,学会从问题中提取阶段、状态和决策。

3. 实操过程与核心环节实现

3.1 环境搭建与代码模板准备

在开始刷题之前,你需要准备好自己的开发环境。我推荐使用VS Code或者CLion作为编辑器,配置好代码补全和调试功能。如果你使用C++,建议开启C++17标准,并熟悉STL中常用容器和算法的使用。如果你使用Python,注意Python的递归深度限制和运行效率问题,必要时可以使用sys.setrecursionlimit来调整递归深度。

代码模板的准备是提高刷题效率的关键。我建议你整理一份自己的模板库,包含以下内容:快速排序、归并排序、二分查找(整数和浮点数)、高精度运算、前缀和与差分、双指针、位运算、离散化、区间合并、链表、栈、队列、单调栈、单调队列、KMP、Trie、并查集、堆、哈希表、DFS、BFS、拓扑排序、Dijkstra、Bellman-Ford、SPFA、Floyd、Prim、Kruskal、二分图判定、匈牙利算法、质数筛法、约数、欧拉函数、快速幂、扩展欧几里得、高斯消元、组合计数、容斥原理、博弈论、背包问题、线性DP、区间DP、树形DP、状态压缩DP、数位DP、记忆化搜索。

模板不是让你抄,而是让你在理解的基础上整理出一份自己用着顺手的代码。每次遇到新的题目,先尝试自己写,写不出来再看模板,然后对比自己的思路和模板的差异,找出问题所在。

3.2 刷题策略与时间分配

刷题不是越多越好,关键是要有针对性。我建议你把题目分为三类:基础题、提高题、挑战题。基础题用于巩固知识点,提高题用于训练思维,挑战题用于拓展视野。在时间分配上,前期可以按照“学习知识点→做3到5道基础题→做1到2道提高题”的节奏推进,后期可以适当增加挑战题的比例。

每道题做完之后,不要急着看下一题,而是花几分钟回顾一下:这道题考察的是什么知识点?我的思路是什么?有没有更优的解法?代码有没有可以优化的地方?边界情况有没有考虑周全?这种复盘习惯能让你的刷题效率提升至少一倍。

我个人的经验是,每天保持2到3小时的刷题时间,周末可以适当增加。不要追求一天刷几十道题,那样除了感动自己没有任何意义。真正重要的是每道题都吃透,做到“做一道题,会一类题”。

3.3 调试技巧与代码优化

调试是算法学习中不可或缺的技能。我常用的调试方法有三种:打印中间变量、使用断点调试、构造小规模测试数据。打印中间变量适合快速定位问题,断点调试适合分析复杂逻辑,构造小规模测试数据适合验证边界条件。

代码优化方面,首先要保证正确性,然后再考虑效率。常见的优化手段包括:减少不必要的循环、使用更高效的数据结构、避免重复计算、使用位运算代替算术运算、使用数组代替哈希表等。但要注意,优化不能以牺牲可读性为代价,除非是在竞赛环境中。

3.4 典型题目实战解析

以“区间合并”为例,题目要求合并所有重叠的区间。解题思路是:先按照区间左端点排序,然后遍历区间,如果当前区间的左端点小于等于上一个合并区间的右端点,则合并;否则,将上一个合并区间加入结果集,开始新的合并区间。这个题目的关键是排序和边界处理,时间复杂度是O(n log n)。

再以“滑动窗口最大值”为例,题目要求找出数组中每个长度为k的窗口中的最大值。暴力解法是O(nk),使用单调队列可以优化到O(n)。具体做法是:维护一个双端队列,队列中存储数组下标,保证队列中的元素对应的数组值是单调递减的。每次滑动窗口时,将新元素加入队列尾部,同时从队列尾部移除所有小于新元素的元素;从队列头部移除超出窗口范围的元素;队列头部元素就是当前窗口的最大值。

4. 常见问题与排查技巧实录

4.1 常见错误类型与排查方法

在算法学习中,常见的错误类型包括:数组越界、整数溢出、死循环、递归栈溢出、边界条件处理不当、初始化错误、状态转移方程写错等。对于数组越界,建议在访问数组元素前先检查下标范围;对于整数溢出,注意使用long long类型;对于死循环,检查循环条件和循环变量的更新逻辑;对于递归栈溢出,考虑改用迭代或者增加递归深度限制。

边界条件处理是很多人容易忽略的地方。比如二分查找中,当目标值不存在时应该返回什么?区间合并中,当输入为空时应该返回什么?动态规划中,初始状态应该如何设置?这些问题在写代码之前就应该想清楚,而不是等到出错再去补。

4.2 时间复杂度分析与优化思路

时间复杂度分析是算法学习的核心技能之一。你需要能够快速判断一段代码的时间复杂度,并根据数据范围判断是否可以通过。一般来说,如果数据范围是10^5,那么O(n log n)的算法是可以接受的,O(n²)的算法就会超时。如果数据范围是10^3,那么O(n²)的算法是可以接受的,O(n³)的算法就会超时。

优化思路方面,常见的套路包括:用空间换时间、用排序加二分代替暴力枚举、用前缀和或差分预处理、用双指针代替双重循环、用哈希表加速查找、用单调栈或单调队列维护最值、用状态压缩减少状态维度等。

4.3 学习瓶颈与突破方法

学习算法遇到瓶颈是正常现象。常见的瓶颈包括:DP状态定义想不出来、图论建模没有思路、数学推导卡住、代码实现总是出错等。突破瓶颈的方法有:多看别人的题解、多和同学讨论、多总结题型和套路、多复习基础知识点、适当休息调整状态。

我个人的经验是,遇到瓶颈时不要硬扛,可以先放一放,去做一些简单的题目找回信心,或者去学习一些新的知识点换换脑子。很多时候,瓶颈的突破不是靠死磕,而是靠积累到一定程度后的自然顿悟。

4.4 常见问题速查表

问题类型典型表现排查方法解决思路
数组越界程序崩溃或结果异常检查下标范围增加边界判断
整数溢出结果变成负数或异常值检查变量类型使用long long
死循环程序卡死检查循环条件确保循环变量更新
递归栈溢出程序崩溃检查递归深度改用迭代或增加限制
边界条件错误特定输入下结果错误构造边界测试数据补充边界处理逻辑
初始化错误结果不稳定检查变量初始值确保所有变量正确初始化
状态转移错误DP结果错误手动模拟小规模重新推导转移方程
时间复杂度超限程序运行超时分析算法复杂度优化算法或数据结构

5. 工具选型与资源推荐

5.1 刷题平台与辅助工具

刷题平台的选择很重要。一个好的平台应该具备以下特点:题目分类清晰、题解质量高、测试数据全面、社区活跃。我建议你选择一个主平台作为主要刷题阵地,再选择一两个辅助平台用于查漏补缺。

辅助工具方面,我推荐使用以下工具:代码编辑器(VS Code、CLion)、版本控制工具(Git)、笔记软件(用于整理题解和模板)、画图工具(用于分析图和树的结构)。这些工具能显著提高你的学习效率。

5.2 参考书籍与视频课程

参考书籍方面,经典的算法教材包括《算法导论》、《算法(第4版)》、《挑战程序设计竞赛》等。这些书各有侧重,你可以根据自己的需求选择。视频课程方面,可以选择一些口碑较好的算法课程,配合刷题使用。

我个人的建议是,不要贪多,选择一套主教材和一套主课程,把它们吃透,比泛泛地看十套教材和课程要有效得多。

5.3 社区与交流渠道

算法学习不是闭门造车,适当的交流能帮你少走很多弯路。你可以加入一些算法学习社区,参与讨论,分享自己的题解和心得。在交流中,你不仅能学到别人的解题思路,还能锻炼自己的表达能力。

但要注意,交流不等于依赖。遇到问题时,先自己思考,实在想不出来再去问。问的时候要描述清楚自己的思路和卡点,而不是直接要答案。这样才能真正提高。

6. 从算法基础课到实战能力的转化

6.1 如何把算法知识应用到实际项目中

算法基础课的知识在实际项目中有广泛的应用。比如,排序和二分用于数据处理和搜索,图论用于网络分析和路径规划,动态规划用于资源分配和决策优化,数学知识用于密码学和统计分析。关键是要学会把实际问题抽象成算法问题,然后选择合适的算法和数据结构来解决。

我个人的经验是,在实际项目中遇到性能瓶颈时,先分析瓶颈在哪里,然后看看有没有合适的算法可以优化。很多时候,一个简单的算法优化就能带来数量级的性能提升。

6.2 持续学习与进阶方向

算法基础课只是起点,不是终点。进阶方向包括:高级数据结构(线段树、树状数组、平衡树、可持久化数据结构)、高级图论(网络流、强连通分量、双连通分量、最近公共祖先)、高级动态规划(插头DP、斜率优化、四边形不等式)、计算几何、字符串算法(后缀数组、后缀自动机、AC自动机)等。

持续学习的关键是保持好奇心和耐心。算法学习是一个长期积累的过程,不要指望一蹴而就。每天进步一点点,一年之后你会发现自己已经走了很远。

6.3 个人学习心得与建议

最后分享几点我个人的学习心得。第一,不要追求刷题数量,要追求刷题质量。一道题做三遍,比三道题各做一遍要有效得多。第二,不要害怕犯错,错误是最好的学习机会。每次犯错之后,都要搞清楚错在哪里,为什么错,怎么避免。第三,不要孤军奋战,找到志同道合的学习伙伴,互相鼓励,互相监督。第四,不要急于求成,算法学习需要时间沉淀,保持耐心,坚持下去,你一定会看到自己的进步。

我在实际刷题过程中发现,很多当时觉得很难的题目,过一段时间再回头看,会发现其实并没有那么难。这是因为你的思维能力和代码能力都在不知不觉中提升了。所以,遇到困难时不要气馁,相信自己,坚持下去,你一定能行。

相关新闻

YOLO26卷积改进实战:MKIR多核卷积倒残差模块替换指南

YOLO26卷积改进实战:MKIR多核卷积倒残差模块替换指南

YOLO26出来后,社区里各种"涨点改进"贴一下多了起来。但说句大实话,大部分改进方案换个数据集就拉胯,能稳定提升几个点的真不多。前几天我复现了一个卷积方向的改进思路,把普通Conv换成一个叫MKIR的多核卷积倒残差模块&a…

2026/10/20 13:16:08 阅读更多 →
大模型并非推理引擎:用强化学习视角破解生成与调优

大模型并非推理引擎:用强化学习视角破解生成与调优

你盯着屏幕上大模型输出的推理步骤,第一眼觉得逻辑清晰、条理分明,再往前一推敲,发现它在第三步偷换了一个关键条件,可文本看起来依然振振有词。这种场景我碰过太多次,早期习惯性归因为"模型推理能力差"&…

2026/10/20 13:16:08 阅读更多 →
MCP协议实战:用标准化接口替代手写JSON,让AI工具调用更简单

MCP协议实战:用标准化接口替代手写JSON,让AI工具调用更简单

写工具接口这件事,我干了差不多十年。以前要给 AI 应用接一个文件系统能力,流程大概是:设计接口、定义 JSON Schema、写执行函数、再写一堆传输层和鉴权的胶水代码,最后还要反复调 prompt 让模型知道该传什么参数。光是一个 read_…

2026/10/20 13:16:08 阅读更多 →

最新新闻

深度学习训练调参实战:梯度、激活函数、学习率与优化器的链路

深度学习训练调参实战:梯度、激活函数、学习率与优化器的链路

入门深度学习时,很多人会被一连串名词劝退:激活函数、优化器、学习率、梯度。我第一次跑模型的时候也觉得它们是四个独立的调参项,今天调一下学习率,明天换一个激活函数,最后模型loss曲线像心电图一样乱跳,…

2026/10/20 13:59:00 阅读更多 →
基于PyTorch的CNN食物识别模型:从原理到实战

基于PyTorch的CNN食物识别模型:从原理到实战

你打开外卖App对着餐盒拍一张照片,系统自动识别出“宫保鸡丁”和“米饭”,然后完成结算。食堂的结算台前,摄像头一扫,餐盘里的菜品被逐项识别计价。这些场景背后,核心的技术单元就是卷积神经网络(CNN&#…

2026/10/20 13:59:00 阅读更多 →
远程桌面连接报CredSSP加密Oracle修正错误?三步修复策略

远程桌面连接报CredSSP加密Oracle修正错误?三步修复策略

1. 问题现象:这台电脑能上网,偏偏远程桌面连不上先说最常见的画面:你在公司或者家里,打开“远程桌面连接”窗口,输入对方电脑的IP,点“连接”,等了几秒,弹出来一个红色感叹号的报错—…

2026/10/20 13:59:00 阅读更多 →
rsync远程同步实战:从增量原理到定时备份与daemon部署

rsync远程同步实战:从增量原理到定时备份与daemon部署

搞运维的人,迟早都会撞上“数据同步”这道坎。不管是把代码推到多台机器上,还是把日志定期归档到备份机,甚至是给客户做异地灾备,这几个场景里最常被拉出来干活的工具,就是rsync。rsync这名字乍看像“远程同步”的缩写…

2026/10/20 13:59:00 阅读更多 →
AI Infra全景地图:七层架构、GPU调度与分布式训练实战笔记

AI Infra全景地图:七层架构、GPU调度与分布式训练实战笔记

做AI Infra这块,最头疼的其实不是某个具体技术学不会,而是知识太散。今天看了篇分布式训练的博客,明天刷到个GPU调优的视频,后天又碰到个数据管线的分享,每样都似懂非懂,真到自己搭环境、调性能的时候&…

2026/10/20 13:59:00 阅读更多 →
链表环与相交的底层原理:从内存地址到工程可靠性

链表环与相交的底层原理:从内存地址到工程可靠性

1. 这不是一道“刷题”题,而是数据结构底层思维的试金石“链表是否有环,是否相交”——看到这八个字,很多人第一反应是:哦,又是LeetCode第141、142、160题。翻出快慢指针模板,背下相遇点公式,提…

2026/10/20 13:57:57 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →