自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

半截诗的博客~

一星陨落 黯淡不了星空灿烂 一花凋零 荒芜不了整个春天

  • 博客(287)
  • 收藏
  • 关注

原创 【Redis篇】Redis 事务:原子性与脚本执行机制

Redis事务与Lua脚本机制摘要 Redis事务通过MULTI、EXEC、DISCARD三个命令实现,具有弱原子性特点:保证命令顺序执行且不被其他客户端打断,但不支持回滚(运行时错误不影响其他命令执行)。与MySQL事务不同,Redis将错误分为两类:语法错误会放弃整个事务,而运行时错误仅影响当前命令。WATCH命令提供乐观锁机制,监视的键被修改时事务自动失败。 由于原生事务的局限性,Redis推荐使用Lua脚本来实现更复杂的原子操作。

2026-06-03 23:52:17 354

原创 【Redis】Redis 持久化:RDB 与 AOF 深度解析

Redis持久化机制RDB与AOF深度解析 Redis提供RDB和AOF两种持久化方式解决内存数据易失性问题。RDB通过定时快照保存数据状态,生成紧凑的二进制文件,适合备份且恢复速度快,但存在数据丢失风险。AOF记录所有写命令,通过重放命令恢复数据,支持实时持久化,但文件体积较大恢复较慢。RDB采用bgsave命令通过fork子进程生成快照,避免阻塞主进程;AOF通过缓冲区与同步策略平衡性能与安全性。实际生产环境中,通常建议同时启用两种方式,或根据数据安全性要求选择,AOF因其可靠性已成为主流方案。

2026-06-02 16:14:56 336

原创 【Redis篇】Redis 渐进式遍历与数据库管理

本文深入探讨了 Redis 的渐进式遍历与数据库管理两大核心主题。首先,针对 `KEYS` 命令在生产环境中的阻塞风险,详细介绍了 `SCAN` 命令的渐进式遍历机制,通过游标分批次处理数据,将 O(N) 的时间复杂度分摊到多次请求中,有效避免了单次操作阻塞 Redis 单线程。文章解析了 `SCAN` 的语法、游标运作方式、`MATCH` 与 `COUNT` 参数的使用,以及 `HSCAN`、`SSCAN`、`ZSCAN` 等针对具体数据类型的遍历命令。

2026-06-01 14:35:37 364 1

原创 【Redis篇】Set 与 Zset:集合运算与排行榜的终极武器

本文介绍了Redis中Set集合与Zset有序集合的核心概念与应用。Set集合以无序、唯一性为特点,支持高效的增删查操作及集合运算(交集、并集、差集),适用于标签系统、共同好友等场景。Zset在Set基础上通过score机制实现自动排序,是构建排行榜的理想选择。文章详细讲解了SADD、SMEMBERS、SINTER等Set命令的使用方法,并通过对比List、Set、Zset三者的特性(重复性、有序性、排序依据),帮助开发者根据业务需求选择合适的数据结构。

2026-05-31 22:20:05 583

原创 【Redis篇】List 列表:双端队列与消息队列的完美实现

Redis List是一种有序、可重复的双端队列数据结构,支持从头部或尾部插入/弹出元素,既可以作为栈(同侧操作)也可以作为队列(异侧操作)使用。核心命令包括LPUSH/RPUSH(插入)、LPOP/RPOP(弹出)、LRANGE(范围查询)、BLPOP/BRPOP(阻塞式弹出)等。List内部编码经历了从压缩列表到快速列表的演进,适用于消息队列、最新动态等场景,其阻塞版本特别适合实现生产者-消费者模式。List最多可存储40亿元素,提供丰富的索引和范围操作能力。

2026-05-30 18:41:02 370

原创 【优选算法篇】深入浅出链表算法:交换、重排与合并的终极策略

本文深入剖析链表操作的核心原理与解题技巧,重点讲解三个经典问题:两两交换节点、重排链表和合并K个升序链表。核心要点包括:1)链表操作本质是指针重定向,需善用虚拟头节点和画图辅助;2)两两交换节点需四指针协作,注意操作顺序;3)重排链表可拆解为找中点、逆序后半段和合并三步;4)合并K个链表推荐小根堆或分治策略,时间复杂度均为O(NlogK)。文章通过详细图解和代码示例,帮助读者掌握链表题的通用解法。

2026-05-29 00:00:00 734

原创 【OpenClaw篇】OpenClaw 实战入门:在 VMware 虚拟机里部署第一个本地 AI Agent

本文介绍了在VMware虚拟机中部署OpenClaw AI Agent的完整流程。OpenClaw是一个本地优先的AI执行环境,不同于普通聊天AI,它能连接模型、工具和工作区执行实际任务。文章详细说明了使用虚拟机隔离环境的重要性,并提供了Windows 10虚拟机的配置建议(4GB内存/60GB磁盘起步)。安装步骤包括:准备虚拟机环境、安装Node.js/Git/Python、部署OpenClaw、完成onboard配置,最后启动Gateway和Dashboard进行首次对话。

2026-05-28 13:01:08 412

原创 【Redis篇】Hash 哈希:字段级操作与对象存储的最佳实践

Redis Hash 哈希类型是一种键值对结构,适合存储对象信息和实现字段级操作。相比String类型,Hash能更高效地聚合对象属性,支持批量操作字段。常用命令包括HSET(设置字段)、HGET(获取字段)、HMGET(批量获取)、HGETALL(获取全部)、HKEYS/HVALS(获取键/值列表)、HEXISTS(判断存在)、HDEL(删除字段)、HLEN(字段计数)、HSETNX(不存在时设置)以及HINCRBY/HINCRBYFLOAT(数值增减)。

2026-05-27 16:26:55 439

原创 【Redis篇】Redis 数据类型入门:全局命令、单线程原理与 String 字符串

本文介绍了Redis的基础知识和核心数据类型String的使用。主要内容包括:1)全局命令如KEYS、EXISTS、DEL、EXPIRE/TTL和TYPE的使用方法及注意事项;2)Redis单线程模型的高效原理;3)数据结构的内部编码机制,如string的raw/int/embstr等实现;4)String类型的完整命令集和典型应用场景。重点讲解了Redis通过多内部编码实现兼顾性能与内存的设计思想,以及生产环境中应避免使用阻塞命令KEYS*等实用建议。

2026-05-24 17:14:53 404

原创 【Redis篇】Redis 安装与启动:快速搭建一个 Redis 环境

本文介绍了在Linux系统上安装和配置Redis的详细步骤,包括CentOS 7/8和Ubuntu三种环境的安装方法。主要内容涵盖:Redis官方不支持Windows的技术原因;CentOS 8一键安装、CentOS 7通过SCL源安装的特殊处理;Ubuntu的简单安装方式;配置远程连接的bind地址和保护模式修改;使用systemd管理服务;Redis重要文件和目录说明。文章强调在生产环境中需配置防火墙和访问密码,并提供了验证Redis是否成功启动的方法。适合初学者快速搭建Redis学习环境。

2026-05-22 21:55:51 401

原创 【Redis篇】初识 Redis:特性、应用场景与版本演进

Redis是一款高性能的键值对内存数据库,具有速度快、数据结构丰富、功能强大等特点。文章首先介绍了Redis的定义及其与普通数据库的区别,重点阐述了Redis支持的多种数据结构(字符串、哈希、列表、集合、有序集合等)。随后详细分析了Redis的八大核心特性:内存存储带来的极速读写、丰富的数据结构、实用的附加功能(如键过期和发布订阅)、简单稳定的架构、多语言客户端支持、持久化机制、主从复制以及高可用集群方案。最后探讨了Redis的典型应用场景,包括缓存系统、排行榜实现等。文章还简要回顾了Redis的诞生背景和

2026-05-21 09:43:34 374

原创 【Redis篇】为什么需要 Redis:从单机到分布式的架构演进之路

本文从单机架构到分布式系统的演进过程,阐述了Redis诞生的必要性。最初单机架构随着用户增长面临性能瓶颈,通过应用与数据分离、应用集群+负载均衡、读写分离等方案逐步扩展系统能力。然而当系统面临热点数据频繁查询数据库的问题时,Redis作为高性能缓存中间件应运而生,有效解决了数据库访问压力大的痛点。文章通过电商系统案例,清晰展示了技术架构演进中遇到的瓶颈及解决方案,最终引出Redis在分布式系统中的核心价值——提升系统响应速度与吞吐量。

2026-05-21 09:11:23 458

原创 零基础入门 LangChain 与 LangGraph(九):LangGraph 收官——运行时上下文、流式输出、子图、与项目结构

本文是LangGraph系列教程的收官篇,重点讲解了如何将LangGraph从流程图工具升级为可部署的AI系统。文章首先分析了现有知识体系的不足,指出运行时上下文、流式输出、子图和项目结构是构建真实系统的关键能力。然后详细介绍了运行时上下文的设计理念,通过区分静态运行时上下文、动态运行时上下文和跨会话上下文,解决了状态与依赖的混淆问题。文章还演示了如何通过context_schema定义运行依赖,并在节点中访问runtime.context。最后强调了模块化开发和项目部署的重要性。

2026-04-28 22:25:47 501

原创 零基础入门 LangChain 与 LangGraph(八):真正让 Agent“活起来”——持久化、记忆、人机交互与时间旅行

本文深入探讨了LangGraph框架如何通过持久化机制解决复杂Agent系统的状态管理问题。核心内容包括:1)区分线程级持久化(Thread和Checkpoint)与跨会话持久化(Store);2)Checkpoint作为执行快照的关键作用,保存状态值、下一步节点等关键信息;3)持久化实现的三大价值:中断恢复、短期记忆支持和调试能力增强。文章强调LangGraph不仅是工作流工具,更是托管状态生命周期的运行时系统,通过检查点机制支持人工干预、时间旅行等高级功能,使Agent系统真正具备长期运行能力。

2026-04-26 17:06:05 539

原创 零基础入门 LangChain 与 LangGraph(七):真正理解 LangGraph——从工作流、状态图到三个核心案例

这篇文章深入探讨了LangGraph在构建复杂AI工作流中的核心作用。作者首先对比了LangChain的链式调用与LangGraph的状态机模型,指出LangGraph更适合处理多步决策、状态传递和分支跳转等复杂场景。文章详细解析了Workflow与Agent的区别,强调LangGraph既能支持预设路径的任务,也能处理动态决策的智能代理。通过三个典型案例(智能快递配送、搜索增强对话和自我修正的Agentic RAG),作者展示了LangGraph如何有效管理状态、节点和边的关系。

2026-04-23 13:53:21 918

原创 零基础入门 LangChain 与 LangGraph(六):核心组件下篇——Document、加载器、文本切分、Embedding、向量存储、检索器与 RAG

本文介绍了LangChain中RAG(检索增强生成)技术的核心组件和工作流程。主要内容包括:1)RAG通过检索外部知识增强模型回答能力,将流程分为离线索引(文档加载、切分、向量化存储)和在线问答(检索相关内容并生成答案)两个阶段;2)Document作为统一的数据载体,包含文本内容、元数据和唯一标识,便于后续处理;3)完整RAG流程涉及文档加载器、文本切分器、Embedding模型、向量存储和检索器等组件协同工作。文章强调RAG不是高级功能,而是构建知识型AI应用的基础架构。

2026-04-21 23:04:16 503

原创 零基础入门 LangChain 与 LangGraph(五):核心组件上篇——消息、提示词模板、少样本与输出解析

本文深入解析LangChain框架中模型调用前后最核心的组件体系,包括消息、提示词模板、少样本提示和输出解析器。首先阐述了为什么聊天模型的输入输出是基于消息序列而非简单字符串,强调角色、内容和元数据在对话结构中的重要性。其次说明提示词模板作为可复用输入接口的价值,以及少样本提示如何显著提升模型输出质量。最后解析输出解析器如何将聊天结果转化为程序可用的结构化数据。文章还区分了模型调用前后的"输入输出组织层"与"外部知识接入层"两类组件,为后续讲解RAG等高级功能奠定基础

2026-04-19 17:39:13 400 1

原创 【MySQL篇】用户管理:数据库安全的基石

MySQL用户管理是保障数据库安全的重要措施。文章介绍了仅使用root账户的风险,以及通过创建不同权限用户实现最小权限原则、职责分离等优势。详细讲解了用户信息的存储位置(mysql.user表)、关键字段含义,以及用户创建方法(包括本地和远程用户)。特别强调了host字段设置对安全性的影响,并指出密码策略的重要性。通过合理的用户权限管理,可以有效降低数据库安全风险,实现审计追踪。

2026-04-17 09:00:00 393

原创 【MySQL篇】视图:虚拟表的妙用

MySQL视图是一种虚拟表,通过查询定义而不存储实际数据。它可以简化复杂查询(如多表连接)、提高数据安全性(隐藏敏感字段)并保持数据独立性(表结构变更不影响视图接口)。基本操作包括创建视图(CREATE VIEW)、查询(与普通表相同)、修改(CREATE OR REPLACE/ALTER VIEW)和删除(DROP VIEW)。视图的数据来源于基表,查询时动态执行定义语句,性能取决于查询复杂度。典型应用场景包括简化重复查询、限制数据访问权限和维护统一数据接口。

2026-04-17 00:00:00 442

原创 【MySQL篇】事务:数据一致性的保障

MySQL事务是保障数据一致性的关键机制,通过ACID属性(原子性、一致性、隔离性、持久性)确保数据库操作的安全可靠。事务将多个SQL语句组合为原子操作,避免中间状态导致的数据不一致问题。MySQL支持四种隔离级别(读未提交、读已提交、可重复读、串行化),默认采用可重复读级别,通过不同锁机制解决脏读、不可重复读和幻读问题。事务操作包括开始(BEGIN)、提交(COMMIT)和回滚(ROLLBACK),并支持保存点功能。只有InnoDB引擎支持完整的事务特性,通过日志机制实现持久化。

2026-04-16 11:49:34 439

原创 【MySQL篇】索引:数据库性能的关键

本文深入解析数据库索引的核心原理与优化实践。首先指出无索引时全表扫描的性能问题,通过对比说明索引可将查询速度提升上千倍。接着剖析磁盘物理结构(磁道、扇区)和访问方式(随机/连续IO),强调减少IO次数是关键。然后详解MySQL的存储设计,包括16KB页大小、Buffer Pool机制和B+树索引结构,揭示数据排序和目录页如何实现高效查询。最后通过多级目录页案例,展示B+树如何解决海量数据下的快速定位问题,为数据库性能优化提供理论基础。

2026-04-15 17:49:21 436

原创 【MySQL篇】内外连接:多表关联的完整指南

本文详细介绍了MySQL中的内连接与外连接操作。内连接(INNER JOIN)仅返回两表中匹配的行,是最高效的连接方式;左外连接(LEFT JOIN)保留左表所有记录,右表无匹配时显示NULL;右外连接(RIGHT JOIN)则保留右表所有记录。通过员工-部门、学生-成绩等实例演示了不同连接的应用场景,帮助理解如何根据查询需求选择适当的连接方式。这些连接操作是多表查询的核心技术,也是数据库开发与面试的重点内容。

2026-04-14 20:04:06 446 1

原创 【MySQL篇】复合查询:多表数据的整合

本文介绍了MySQL中的复合查询技术,重点讲解了多表查询、自连接和子查询。主要内容包括:1)通过笛卡尔积和等值连接实现多表关联查询;2)使用表别名简化查询语句;3)三表连接查询员工信息及其工资等级;4)自连接的概念和应用,通过员工表自身关联查询上下级关系。文中提供了完整的SQL示例和测试数据,展示了如何从多个相关表中获取完整信息,是MySQL数据库查询的重要技能。

2026-04-14 14:50:26 411

原创 【MySQL篇】内置函数:数据处理的利器

本文介绍了MySQL中最常用的内置函数,主要包括日期函数、字符串函数和数学运算函数。重点讲解了日期处理相关函数,如获取当前日期时间的CURRENT_DATE()、CURRENT_TIME()和NOW(),日期计算的DATE_ADD()和DATE_SUB(),日期差值DATEDIFF(),以及提取日期部分的YEAR()、MONTH()等函数。文章还通过用户生日计算年龄的实战案例,展示了这些函数的实际应用。这些内置函数能大大简化数据处理过程,提高SQL查询效率。

2026-04-13 18:16:46 439

原创 【MySQL篇】表的增删改查:数据的操作

本文介绍了数据库表中数据的增删改查(CRUD)操作,主要包括插入(INSERT)、查询(SELECT)、更新(UPDATE)和删除(DELETE)四大核心功能。文章首先创建了学生表和成绩表作为测试数据,详细讲解了单行全列插入、多行指定列插入等数据插入方法,并分析了主键冲突的处理方式,包括ON DUPLICATE KEY UPDATE和REPLACE两种解决方案。此外,还介绍了如何获取最后插入的自增ID。本文为数据库基础操作提供了实用指南,适合初学者快速掌握数据操作的基本语法和常见场景。

2026-04-13 10:52:13 431

原创 【MySQL篇】表的约束:保证数据完整性

本文介绍了MySQL中表的约束机制,主要包括NULL/NOT NULL约束、DEFAULT默认值和COMMENT列注释三部分内容。NULL表示未知或无值,具有特殊运算特性;NOT NULL约束确保字段不为空,建议非必要字段都应设置此约束。DEFAULT可为字段设置默认值,当插入数据未指定值时自动填充,适用于状态、数值、日期等常见字段。COMMENT用于为字段添加文字说明,虽不影响数据约束但能提高表结构的可读性。这些约束机制共同保障了数据的完整性和业务逻辑的正确性。

2026-04-12 21:13:58 605

原创 【MySQL篇】数据类型:存储数据的基础

MySQL数据类型是数据库设计的基础,主要包括数值、字符串、日期时间和特殊类型四大类。数值类型包含整数(TINYINT、INT等)和浮点数(FLOAT、DECIMAL),不同整数类型在存储空间和数值范围上有所区别。字符串类型(CHAR、VARCHAR等)用于存储文本数据,日期时间类型(DATE、DATETIME等)处理时间相关数据。选择合适的数据类型能节省存储空间、提高查询性能并确保数据完整性。文章详细介绍了各类型特点、语法规范和使用场景,并提供了具体示例,如TINYINT用于状态标记、INT作为通用整数类

2026-04-12 11:23:22 475

原创 【MySQL篇】表的操作:数据的容器

本文介绍了MySQL数据库中表的创建、修改和删除操作。主要内容包括:创建表的基本语法与实例演示,如何设置字段默认值和注释;不同存储引擎(MyISAM和InnoDB)的表文件结构差异;查看表结构的DESC命令使用方法;以及表的修改和删除操作。文章重点讲解了创建表时的参数配置,包括字符集、校验规则、存储引擎选择等关键选项,并通过具体示例展示了不同场景下的表创建方式。最后还介绍了在Ubuntu系统中查看表物理文件的方法。

2026-04-08 22:22:09 424

原创 【MySQL篇】数据库操作:从创建到管理

本文介绍了MySQL数据库的基本操作,重点讲解了数据库创建、字符集与校验规则设置等核心内容。主要内容包括: 数据库创建的三种方式:简单创建、指定字符集创建、同时指定字符集和校验规则创建 字符集和校验规则的概念与区别,推荐使用utf8mb4字符集 如何查看系统默认字符集和校验规则 校验规则对数据排序和比较的实际影响,通过案例展示了区分大小写和不区分大小写的差异 文章提供了详细的SQL语法说明和实用示例,帮助读者掌握MySQL数据库的基本管理操作。

2026-04-08 10:39:29 593

原创 【MySQL篇】从零开始:安装与基础概念

本文介绍了MySQL数据库的基础概念与安装方法。首先分析了文件存储的四大缺陷(安全性低、查询不便、存储受限、控制困难),进而引出数据库的优势(安全、高效、海量存储)。对比主流数据库产品后,重点推荐MySQL(流行、易学、高性能、开源)。随后详细演示了在Ubuntu 22.04上安装MySQL 8.0的完整流程,包括环境检查、旧版本清理、安装验证、服务启动等步骤,并指导完成首次登录和基础配置。全文为MySQL初学者提供了清晰的入门指引。

2026-04-08 00:42:38 458

原创 零基础入门 LangChain 与 LangGraph(四):聊天模型进阶——工具调用、结构化输出、流式传输与 LangSmith

本文是LangChain与LangGraph入门系列的第四篇,重点探讨聊天模型的核心功能。文章首先回顾了基础概念,包括Runnable抽象和LCEL语法,强调模型、解析器和链式调用都可通过invoke()统一执行。接着深入讲解工具调用的完整闭环流程、结构化输出如何将字符串转换为对象、流式传输的底层机制,以及LangSmith在调试中的作用。通过最小可运行代码示例,展示了消息系统、输出解析器和链式组合的使用方式,并解释了Runnable作为统一接口的重要性,包括其标准能力如批处理、流式传输和组件组合等。

2026-04-07 19:28:44 667 1

原创 零基础入门 LangChain 与 LangGraph(三):环境搭建、包安装与第一个 LangChain 程序

本文介绍了零基础入门LangChain与LangGraph的第三部分,重点讲解环境搭建、包安装和第一个LangChain程序的实现。文章强调不应盲目安装所有包,而应遵循"最小可用安装法",先了解LangChain生态中各包的分工(如主入口包langchain、基础抽象层langchain-core、模型集成包langchain-openai等),再按需安装当前所需的最小依赖。针对Windows环境,推荐使用Python 3.11或3.12版本,并创建虚拟环境隔离项目。最终目标是帮助开发者从概念理解过渡到实际

2026-04-03 21:09:56 807 2

原创 零基础入门 LangChain 与 LangGraph(二):AI 都会写代码了,为什么还要学框架?

本篇文章主要回答一个问题:既然 AI 已经能快速生成代码,为什么还要学习 LangChain 和 LangGraph。作者指出,AI 擅长加快原型开发和局部实现,也就是所谓的 Vibe Coding,但它并不能天然解决系统的可维护性、一致性、可靠性、状态管理和长流程控制问题。真正把模型能力做成可上线、可调试、可扩展的应用,依赖的是工程化抽象与流程组织。LangChain 的价值在于统一模型调用、Prompt、检索、工具和输出解析等高层组件,帮助开发者快速搭建

2026-04-02 15:52:31 1060 11

原创 零基础入门 LangChain 与 LangGraph(一):理解大模型、提示词、Embedding 和接入方式

作者指出,LangChain 本质上不是能力来源,而是把模型调用、提示词设计、检索、工具调用和工作流编排组织起来的工程框架。文中先解释了模型与大语言模型的本质,强调 LLM 可以理解为强大的“下一个词预测器”;再说明提示词不是玄学,而是与模型沟通的接口契约;接着讲清了 Embedding 的作用,即把文本映射为向量,支撑语义搜索、RAG、推荐等能力。文章还梳理了云端 API、本地部署和 SDK 三种接入方式,并说明 LangChain 与 LangGraph 分别对应高层应用开发和更底层的状态化编排。

2026-04-02 00:57:56 906 29

原创 【优选算法篇】拓扑排序——逻辑先后与任务依赖的终极拆解

摘要:拓扑排序的逻辑枷锁与解法 本文探讨拓扑排序在依赖关系中的应用,通过两个经典问题展示其核心逻辑: 课程表问题:将课程建模为有向图节点,依赖关系为边。通过BFS统计入度并逐步解除依赖,判断是否存在可行学习路径或返回具体顺序。若处理节点数不足总数,则存在环。 火星词典问题:通过比较相邻单词的首个差异字符建立字母顺序依赖。需处理非法前缀情况,最终通过拓扑排序推导字母顺序,若结果长度不足则说明存在环。 关键点在于:将实际问题转化为有向无环图,通过入度统计和BFS逐步解除依赖,既解决顺序问题又能检测逻辑死锁(环)

2026-03-30 20:55:30 584

原创 【优选算法篇】多源 BFS——涟漪齐发,全局最优

本文介绍了几道基于多源广度优先搜索(BFS)的矩阵问题解法。第一题"01矩阵"通过将0作为源点进行扩散,计算每个1到最近0的距离;第二题"飞地数量"从边界1出发标记可达区域,统计未被标记的陆地数量;第三题"地图最高点"将水域作为源点,计算各点与最近水域的距离作为高度。这三题均采用多源BFS策略,通过队列实现波纹式扩散,确保首次访问即为最短路径,时间复杂度为O(MN)。

2026-03-30 13:39:49 381

原创 【优选算法篇】BFS 解决最短路——寻找最优路径的真谛

本文探讨了BFS在最短路径问题中的应用原理和实战案例。核心原理指出,BFS通过层级扩散保证首次访问目标点时路径最短,适用于等权图问题。文章通过几个LeetCode题目进行实战分析:(1)迷宫出口问题通过坐标状态和层序遍历实现步数统计;(2)基因变换问题将字符串视为节点,利用哈希集合优化查询;(3)单词接龙问题通过字符替换降低时间复杂度。三个案例均采用BFS框架,通过状态定义、转移规则和边界处理建模问题,验证了BFS在等权最短路搜索中的高效性和普适性。

2026-03-29 21:56:44 419

原创 【优选算法篇】BFS 解决 FloodFill—矩阵中的涟漪效应

本文介绍了四种基于广度优先搜索(BFS)的二维网格问题解法:1)图像渲染(Flood Fill)通过BFS实现像素点染色;2)岛屿数量统计采用"发现即标记"策略;3)岛屿最大面积在BFS过程中累加计数;4)被围绕区域问题运用"正难则反"思想,从边界反向搜索。这些算法都遵循相似的BFS模板,通过队列实现扩散搜索,并利用标记避免重复访问,展示了BFS在连通性问题中的高效性和通用性。

2026-03-28 15:09:11 415

原创 【优选算法篇】优先级队列(堆/Heap)——极值的瞬间捕获

本文探讨了堆(Heap)在解决动态集合问题中的高效应用,通过四个典型题目展示了堆的核心思路和实现技巧:1)使用大根堆模拟粉碎石头过程;2)用小根堆维护数据流中的第K大元素;3)通过自定义比较器实现多维度排序获取高频单词;4)利用双堆平衡机制高效计算数据流中位数。这些案例揭示了堆在处理实时数据、优先级排序和动态统计中的独特优势,时间复杂度均优化至O(logN)级别。

2026-03-27 20:50:14 352

原创 【优选算法篇】队列与宽度优先搜索(BFS)——层层递进的视野

本文介绍了BFS(广度优先搜索)在解决树结构问题中的四种典型应用:N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树的最大宽度计算以及每层最大值查找。通过队列控制层级处理,结合索引编号和反转技巧,高效解决各类层序相关问题。代码示例展示了如何利用BFS模板处理不同变体问题,包括处理N叉树、锯齿形遍历、节点编号溢出问题以及逐层最大值统计。这些方法体现了BFS"涟漪式扩散"的特点,能够系统性地掌控全局树结构信息。

2026-03-27 15:17:28 710

大学生活+学习规划+电脑操作与专业选择+新生全面成长指南

踏入大学,是人生的一次重要转折。这份为新生量身打造的指南,将带领你从初入校园的迷茫到自信满满地开启全新的学习与生活旅程。无论你对大学生活充满期待,还是对未来充满未知,这套资源都将是你成长路上的坚实依靠。 从入学初期的必备常识到大学四年的全方位规划,从电脑操作的基础扫盲到专业领域的深度解析,我们为你准备了一切你可能需要的宝贵经验与实用技巧。资源涵盖学习方法、时间管理、电脑技能提升,以及适应新环境的社交建议,帮助你迅速找到属于自己的大学节奏。通过丰富的内容和详实的引导,你将掌握高效学习的秘诀,合理规划时间,全面提升自我。 无论你是对学术规划有所困惑,还是对未来职业发展充满憧憬,这份资源都将为你提供从基础到深度的指导,让你从容应对大学生活中的每一次挑战。除此之外,丰富的应用推荐与操作指南也将助力你轻松驾驭现代科技,提升学习效率。 大学,是一次崭新的起航,而这套资源,将成为你乘风破浪的导航灯,帮助你在人生的这片广阔海洋中,找到属于自己的方向。愿你在这段旅程中,不断突破自我,迎接崭新未来,成就属于你的辉煌篇章。让我们一起开启这段充满未知与希望的旅程,勇敢追梦,迎接属于你的精彩未来!

2024-09-25

C语言基础与高级应用:从入门到进阶全流程教程

本资源专为初学者及有一定基础的开发者量身打造,提供全面的C语言学习路径。通过系统化的由浅入深讲解,涵盖基础到高级的各个知识点,帮助学习者迅速掌握C语言的精髓。教程从基本语法入手,逐步探讨控制结构、数组、指针、字符串操作等核心内容,直至结构体、函数指针、动态内存分配、文件操作等高级概念,确保学习者在扎实基础上稳步提升编程能力。 此外,教程精心设计了大量实战案例,帮助学习者在理论学习的同时,结合实际项目进行编码训练,进一步巩固知识点,提升实操能力。通过由易到难的编程挑战,您将打下坚实的C语言基础,并逐步掌握复杂项目的开发技巧。 本教程适合初学者及希望强化C语言技能的技术人员。无论您是计算机专业学生、从事嵌入式开发或系统编程的工程师,亦或是编程爱好者,本教程都能为您提供清晰的学习路径和实践指导。通过丰富的应用场景与典型案例,您将学会如何将C语言应用于实际工作中,为未来的技术提升奠定坚实基础。 通过本教程,您将掌握C语言的基础与进阶知识,并通过实战项目提升编程能力,迈向成为优秀程序员的目标。希望这份资源成为您编程之路的得力助手,帮助您快速成长,拓展技术视野,迎接更广阔的职业前景。

2024-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除