自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 LeetCode 热题 100-----28. 两数相加

题目要求将两个逆序存储数字的链表相加,返回同样逆序的结果链表。摘要如下: 问题描述:两个链表逆序存储非负整数(个位在前),要求模拟加法运算,返回逆序的结果链表。 解法对比: 暴力法(不推荐):将链表转为数字相加再转回链表,存在大数溢出问题 最优解法(推荐):逐位模拟加法运算,处理进位,时间复杂度O(max(m,n)) 关键点: 使用哑节点简化链表拼接 处理长短链表不一致情况(空节点补0) 最后进位需单独处理 逆序存储天然适配加法运算顺序

2026-05-23 09:58:49 569

原创 LangGraph结合大模型构建智能工作流

本文是 LangGraph 结合通义千问大模型构建智能工作流的零基础精讲教程,适配编程新手,配套完整实操代码与细节解析。课程先铺垫 Python、LangGraph 框架、大模型调用等前置基础知识,核心讲解四大企业级 AI 核心能力:流式输出实现实时响应与 Token 用量统计、检查点加持实现对话消息持久化记忆、人在回路人工干预规避 AI 输出风险、时间回溯功能支持节点快照重演与高效调试。

2026-05-22 11:21:38 606

原创 LeetCode 热题 100-----27. 合并两个有序链表

题目要求合并两个非递减有序链表为一个新的有序链表。摘要如下: 链表基础:链表由节点组成,每个节点包含值(val)和指向下一节点的指针(next)。有序链表指节点值非递减排列。 解法一(迭代法): 使用哨兵节点简化头节点处理 双指针遍历两链表,每次取较小节点拼接 时间复杂度O(n+m),空间复杂度O(1) 代码示例包含C++和Python实现 解法二(递归法): 递归比较头节点,保留较小节点并递归合并剩余部分 时间复杂度O(n+m),空间复杂度O(n+m)(递归栈)

2026-05-22 10:50:41 557

原创 深度理解LangGraph核心-Graph

本文系统介绍了LangGraph中Graph的核心概念与使用方法。Graph基于有向无环图(DAG)构建,包含三大核心元素:State(全局共享容器)、Node(处理单元)和Edge(流程控制)。文章详细讲解了Graph的构建流程、四种Edge类型(普通/条件/多分支/并行)以及高级特性(递归限制/中断恢复/序列化/子图)。通过Python代码示例演示了Graph从定义到调用的完整过程,特别强调了State的类型规范、Node的缓存重试机制以及流程控制技巧。

2026-05-21 12:20:39 501

原创 LeetCode 热题 100-----26.环形链表 II

本文详细讲解了如何检测单链表中的环并找到入环点。主要内容包括: 前置知识:介绍了单链表结构、环形链表定义,以及解题所需的哈希集合和快慢指针两种工具。 两种解法: 哈希集合法:通过存储访问过的节点判断环,空间复杂度O(n) 快慢指针法:使用双指针技巧,空间复杂度O(1),是面试常见考点 代码实现:提供了Python和C++的完整代码,包含详细注释和测试用例。

2026-05-21 10:57:55 855

原创 LangGraph接入MCP

本文是一篇Python编程与AI工具调用的实战指南,主要包含以下内容: Python基础入门 介绍Python语言特点及基本语法 讲解模块导入、函数定义、装饰器等核心概念 重点说明异步编程(async/await)的必要性和使用方法 AI相关概念 解释大模型、FunctionCall和MCP协议 说明MCP作为统一接口协议的价值

2026-05-20 19:48:39 536

原创 LeetCode 热题 100-----25.回文链表

本文详细讲解了判断链表是否有环的两种解法。哈希集合法通过记录访问过的节点判断重复访问,时间复杂度O(n),空间复杂度O(n)。快慢指针法使用两个指针以不同速度遍历链表,若相遇则存在环,时间复杂度O(n),空间复杂度O(1),是最优解。文章通过生活化比喻解释核心概念,提供Python和C++的完整代码及详细注释,并对比两种解法的优缺点。最后强调判断环的关键是节点重复而非数值重复,并给出常见问题解答和拓展练习建议。

2026-05-20 10:10:51 524

原创 LeetCode 热题 100-----24.回文链表

本文介绍了判断单链表是否为回文的两种方法。第一种数组转换法简单直观,将链表值存入数组后用双指针判断回文,时间复杂度O(n),空间复杂度O(n)。第二种快慢指针法更高效,通过快慢指针找到中点后反转后半段链表,再用双指针比较前后半段,时间复杂度O(n),空间复杂度O(1)。文章详细讲解了两种解法的实现步骤、代码示例和运行过程,并比较了它们的优缺点。对于初学者建议先掌握数组转换法,熟练后再学习快慢指针法。

2026-05-19 17:38:59 583

原创 LeetCode 热题 100-----23.反转链表

本文详细讲解了反转单链表的两种方法:迭代法和递归法。迭代法通过三个指针(prev、curr、nextTemp)逐步反转节点指向,逻辑直观且高效;递归法则通过递归到链表末端再回溯反转节点,代码简洁但理解难度较高。文章提供了C++和Python的完整实现代码,并逐步拆解运行过程,帮助读者深入理解。两种方法的时间复杂度均为O(n),但迭代法的空间复杂度更优(O(1))。最后总结了常见错误和适用场景,建议初学者优先掌握迭代法,进阶学习递归法以应对面试需求。

2026-05-09 11:59:42 509

原创 LeetCode 热题 100-----22.相交链表

本文介绍了三种方法解决两个单链表的相交节点查找问题: 暴力枚举法:通过双重循环逐一比较节点地址,时间复杂度O(mn),空间复杂度O(1),适合初学者理解但效率低。 哈希集合法:存储一个链表的所有节点地址,再遍历另一个链表查找匹配,时间复杂度O(m+n),空间复杂度O(m),以空间换时间。 双指针法:最优解法,两个指针分别遍历两个链表并在到达末尾时交换链表继续遍历,时间复杂度O(m+n),空间复杂度O(1),满足进阶要求。 关键点在于判断节点地址而非节点值是否相同。双指针法通过让两个指针走过相同总路程的原理确

2026-05-08 10:47:01 582

原创 LeetCode 热题 100-----21.搜索二维矩阵 II

题目要求在给定的二维矩阵中查找目标值,矩阵满足每行从左到右、每列从上到下均为升序排列。文章详细讲解了两种解法: 暴力遍历法:通过双重循环逐个检查每个元素,时间复杂度为O(m×n),适用于小规模矩阵或初学者理解基础逻辑。 高效查找法:利用矩阵的升序特性,从右上角开始查找: 若当前值等于目标值,返回True; 若当前值大于目标值,左移一列; 若当前值小于目标值,下移一行。 时间复杂度优化至O(m+n),适合大规模矩阵和面试场景。 文章还对比了两种方法的优劣,解答了常见问题,并提供了Python和C++的代码实现

2026-05-07 21:24:31 629

原创 LeetCode 热题 100-----20.旋转图像

这篇文章详细讲解了如何原地旋转二维矩阵90度的两种解法。解法1通过矩阵转置后反转每行实现,逻辑简单代码量少;解法2通过四元素循环交换实现,更深入理解矩阵坐标规律。两种方法时间复杂度均为O(n²),空间复杂度O(1),都满足题目要求。文章包含完整Python和C++代码实现,通过示例逐步演示旋转过程,并给出清晰的练习建议,帮助读者掌握这一常见面试题型。

2026-05-06 16:16:14 580

原创 LeetCode 热题 100-----19.螺旋矩阵

本文介绍了两种顺时针螺旋遍历矩阵的算法。第一种是边界模拟法,通过控制上下左右四个边界逐步收缩来实现遍历,代码简洁高效,是首选方法。第二种是方向数组法,通过模拟移动过程和标记已访问元素来实现遍历,逻辑直观但需要额外空间。文章详细讲解了两种方法的实现步骤、代码示例及运行过程,并对比了它们的优缺点。同时提供了常见问题的避坑指南,帮助读者掌握矩阵螺旋遍历的核心技巧,适用于编程面试和算法学习。

2026-05-05 18:19:26 563

原创 LeetCode 热题 100-----18.矩阵置零

本文介绍了三种解决矩阵置零问题的方法,从暴力解法到最优解逐步优化。暴力解法(O(mn)空间)通过复制矩阵进行标记,简单但内存消耗大;优化解法(O(m+n)空间)使用两个标记数组记录需要置零的行列,是面试基础写法;最优解法(O(1)空间)利用矩阵首行首列作为标记空间,配合临时变量col0处理边界情况,实现常量空间复杂度。文章详细解析了每种解法的实现步骤、代码示例和运行流程,特别强调了不能边遍历边置零的关键点,并总结了常见错误及解决方法。最优解法虽然逻辑较复杂,但能高效处理大规模矩阵,是面试进阶必备技能。

2026-05-04 23:28:34 590

原创 LeetCode 热题 100-----17.缺失的第一个正数

本文详细讲解了如何在一个未排序的整数数组中找出缺失的最小正整数。主要内容包括: 前置知识:介绍了正整数定义、数组基本概念、时间/空间复杂度等基础知识。 三种解法对比: 暴力枚举法(O(n²)时间,O(1)空间):简单直观但不满足要求 哈希集合法(O(n)时间,O(n)空间):过渡解法 原地哈希法(O(n)时间,O(1)空间):最优解,利用原数组下标标记数字存在性 关键点: 缺失最小正整数必定在1到n+1范围内 通过将有效数字对应下标位置设为负数来标记存在性 分三步处理:过滤无效数、标记存在数、查找第一个正数

2026-05-03 14:02:45 812

原创 LeetCode 热题 100-----16.除了自身以外数组的乘积

本文详细讲解了如何计算数组中除自身外所有元素的乘积问题。首先通过暴力解法(O(n²)时间复杂度)引入问题,然后提出基于前缀乘积和后缀乘积的优化解法(O(n)时间、O(n)空间)。最后给出最优解,利用输出数组存储前缀乘积,结合动态计算的后缀乘积变量,实现O(n)时间复杂度和O(1)额外空间复杂度。文章包含Python和C++代码实现,逐行注释说明,并通过示例演示运行过程。三种解法形成递进关系,帮助读者从理解基础逐步过渡到掌握最优解决方案,特别强调了前缀/后缀乘积这一核心技巧的应用。

2026-05-02 19:57:06 543

原创 LangGraph 构建AI Agent智能体

本文详细介绍了如何从零开始构建一个功能完整的AI智能体(Agent)。主要内容包括: 环境准备:Python安装、代码编辑器配置、依赖库安装(LangChain、LangGraph等) 核心概念:大模型调用、API密钥获取、工具定义、记忆管理、人工监督机制 功能实现: 基础聊天功能 工具调用(日期查询、数学计算等) 短期记忆(会话级)和长期记忆(持久化存储) 关键操作的人工确认机制 完整Agent整合:将各项功能模块组合成一个可直接使用的智能体 常见问题解答:环境配置、代码运行、功能调试中的典型问题解决方案

2026-05-01 22:26:32 1043

原创 LeetCode 热题 100-----15.轮转数组

本文详细介绍了三种解决数组轮转问题的方法:暴力逐次轮转法、额外数组法和三次反转法。暴力法通过k次单步轮转实现,时间复杂度O(n×k);额外数组法利用公式计算新位置,空间换时间,复杂度O(n);三次反转法最优,通过三次反转实现原地修改,空间复杂度O(1)。文章强调必须进行k=k%n的简化操作,避免无效轮转,并对比了各方法的适用场景。每种方法均配有Python和C++代码实现、详细注释和运行示例,特别提醒注意索引从0开始、原地修改的实现方式等常见问题,为理解数组轮转提供了全面指导。

2026-05-01 21:59:30 555

原创 LeetCode 热题 100-----14.合并区间

本文详细讲解了合并重叠区间的算法问题。首先通过生活例子说明题目要求:将多个可能重叠或相连的区间合并为不重叠的区间集合。文章对比了暴力解法(O(n²)时间复杂度)和最优解法(O(nlogn)),重点推荐了最优解法:1)先按区间起点排序;2)遍历时逐个与已合并的最后一个区间比较,能合并则更新终点,否则加入结果集。提供了Python和C++的完整实现代码,包含详细注释和测试用例,并分析了时间/空间复杂度。最后总结了10个常见错误及解决方法,帮助读者避坑。

2026-04-30 13:33:05 510

原创 LeetCode 热题 100-----13.最大子数组和

本文详细讲解了求解最大子数组和的四种算法:暴力枚举法(O(n²))、动态规划法(O(n))、Kadane算法(O(n))和分治法(O(nlogn))。暴力法通过双重循环枚举所有子数组,直观但效率低;动态规划用dp数组存储局部最优解;Kadane算法优化空间复杂度至O(1),是面试首选;分治法采用递归思想拆分问题。文章通过示例逐步演示各算法的执行过程,强调Kadane算法的高效性(时间O(n),空间O(1)),并比较了各方法的优缺点,为不同学习阶段提供了清晰的进阶路径。

2026-04-29 23:14:54 574

原创 LeetCode 热题 100-----12.最小覆盖子串

本文讲解如何在字符串s中寻找包含字符串t所有字符的最短连续子串。首先介绍了三个必备知识:子串的定义(必须连续)、哈希表/数组用于字符频率统计、滑动窗口的双指针技巧。然后详细分析题目要求,通过示例说明最小覆盖子串的含义。核心解法部分,先介绍暴力枚举法(O(m²n)时间复杂度)帮助理解题意,再重点讲解最优的滑动窗口解法(O(m+n)时间复杂度)。滑动窗口通过左右指针维护一个可变窗口:右指针扩展窗口直到满足条件,左指针收缩窗口寻找最小解。

2026-04-28 19:50:05 485

原创 LangGraph 入门全解析

本文详细介绍了LangGraph框架的学习路径和核心知识要点。主要内容包括: 必备前置知识:Python基础(环境安装、模块管理、基础语法)、API调用原理、大语言模型基础概念、框架基础知识。 LangGraph核心概念:作为LangChain生态的上层组件,提供智能体封装和多智能体编排功能,简化复杂LLM应用开发流程。

2026-04-27 12:08:22 636

原创 LeetCode 热题 100-----11.滑动窗口最大值

滑动窗口最大值问题要求找出数组中每个大小为k的滑动窗口的最大值。暴力解法(O(nk))逐个比较窗口内元素,但无法处理大数据量。最优解法采用单调递减双端队列(O(n)),存储数组下标而非数值,通过三个核心操作:清理比当前元素小的队尾元素、加入当前下标、清理超出窗口的队首元素。当窗口形成时(i≥k-1),队首即为当前窗口最大值。该解法每个元素仅入队出队一次,高效处理10⁵级数据量,是面试必备解法。Python和C++实现均需注意队列存下标、while循环清理队尾等关键细节。

2026-04-27 09:21:12 544

原创 大模型网络服务部署

本文为零基础用户提供详细教程,指导如何将本地LangChain大模型应用部署为可访问的网络服务。教程分为两套方案:LangServer构建后端API接口和Gradio创建前端网页界面。内容涵盖必备知识(Python、依赖库、LangChain框架等概念)、环境配置(Python安装、API密钥获取)、代码编写(逐行注释的翻译工具实现)以及服务部署步骤。通过实战演示,用户可学会创建翻译服务API和可视化网页,实现输入文本获取翻译结果的功能。教程特别强调常见错误解决方法,确保每一步均可操作执行

2026-04-26 11:42:33 830

原创 LeetCode 热题 100-----10. 和为K的子数组

这篇文章详细讲解了如何解决"统计和为k的连续子数组个数"的问题。核心思路是使用前缀和结合哈希表的方法: 前缀和是关键工具,能够快速计算任意子数组的和(preSum[i]-preSum[j]) 哈希表用于高效记录前缀和出现的次数,将时间复杂度从O(n²)优化到O(n) 初始哈希表设为{0:1},解决preSum[i]直接等于k的情况 遍历数组时,计算current_sum和target=current_sum-k,通过哈希表查找target出现的次数并累加到结果中

2026-04-26 11:34:56 602

原创 RAG智能问答系统实战

本文详细介绍了如何从零开始搭建一个基于RAG(检索增强生成)的智能客服系统。主要内容包括:1. 必备前置知识:Python基础、核心概念(大模型、文本向量化、向量数据库、LangChain框架)和环境搭建。2. RAG理论详解:核心工作流程分为索引阶段(文档加载、文本拆分、向量化存储)和检索阶段(问题检索、Prompt拼接、大模型生成答案)。3. 实战步骤:使用FAISS作为本地向量数据库,通过阿里云DashScope实现文本向量化和大模型调用,最终完成问答系统的搭建。

2026-04-25 10:03:58 932

原创 LeetCode 热题 100-----9. 找到字符串中所有字母异位词

本文介绍了如何高效解决字符串中查找字母异位词子串的问题。通过滑动窗口算法和字符计数数组相结合,可以避免暴力解法的低效问题。关键步骤包括:1) 初始化两个长度为26的计数数组分别统计p和窗口内字符频率;2) 滑动窗口时仅更新两端字符的计数;3) 比较计数数组判断异位词。该方法时间复杂度为O(n),空间复杂度O(1),适用于大规模字符串处理。文中提供了Python和C++的完整实现代码,并通过示例详细解释了算法流程和边界条件处理。

2026-04-25 09:52:17 504

原创 使用Embedding实现自然语言搜索

本文介绍了自然语言搜索的核心概念和技术实现。主要内容包括:1)基础概念:解释了Token、向量、Embedding等关键术语,说明如何将人类语言转换为计算机可处理的数字向量;2)工具准备:详细说明了阿里云百炼API密钥的获取方法;3)技术实现:通过代码示例演示了文本向量化、向量相似度计算、向量数据库(FAISS)存储与检索等核心功能;4)高级应用:介绍了Retriever检索器和LCEL链式调用等简化操作的方法。

2026-04-24 10:43:33 764

原创 LeetCode 热题 100-----8. 无重复字符的最长子串

本文详细讲解了"无重复字符的最长子串"问题的滑动窗口解法。首先介绍了必备的前置知识:字符串、子串、重复字符、滑动窗口和哈希集合的概念。然后详细解析题目要求,通过示例说明解题思路。核心解法采用滑动窗口+哈希集合,时间复杂度O(n)。文章提供了Python和C++两种语言的完整代码实现,包含详细注释和测试用例。重点讲解了滑动窗口的工作原理:右指针扩张窗口,左指针在发现重复字符时收缩窗口,始终保持窗口内无重复字符,记录最大窗口宽度。

2026-04-24 09:21:31 402

原创 扩展机器人的能力边界-LangChain 工具定制

本文围绕扩展机器人能力边界 - LangChain 工具定制展开系统讲解,首先梳理字典、条件循环、装饰器等前置 Python 基础语法,再介绍 LLM、工具、Chain、Agent、LCEL、工具绑定等 LangChain 核心概念。文中详细说明三种工具定制方式:@tool 装饰器简易工具、StructuredTool 深度结构化工具、LCEL 链式流程转换工具;对比手动工具调用与 Agent 智能调用,Agent 可自动完成问题分析、工具选择、参数提取、上下文维护等流程。

2026-04-23 11:26:05 562

原创 LeetCode 热题 100-----7. 接雨水

摘要:本文详细讲解了计算柱状图中雨水总量的算法。首先介绍基础概念(数组、函数、指针)和核心原理(单个柱子接水量=min(左右最高高度)-自身高度)。然后逐步讲解三种解法: 暴力法、动态规划、双指针法。

2026-04-23 11:01:47 635

原创 扩展机器人的能力边界-Tools工具

本文深入解析了大模型的知识局限与Tools工具机制解决方案。大模型虽具备强大推理能力,但无法获取实时数据(如当前日期、天气等)。Tools机制通过API调用外部工具,为模型提供"外接大脑"扩展能力。文章详细演示了如何用Python创建本地日期查询工具:1)使用@tool注解定义工具函数;2)绑定工具到大模型;3)通过消息列表实现"问题-工具调用-结果反馈"的完整流程。关键点包括:工具名称/描述必须清晰、消息传递需完整、参数说明要明确。最后延伸介绍了Agent自动执行工

2026-04-22 10:31:04 677

原创 LeetCode 热题 100-----6. 三数之和

本文详细解析了如何高效解决"三数之和"问题。首先介绍了5个必备知识点:数组基础、排序算法、双指针技巧、去重逻辑和时间复杂度分析。核心解法采用排序预处理+固定一个数+双指针查找的策略,时间复杂度优化至O(n²)。文中提供了Python和C++的完整实现代码,每行都有详细注释,并包含测试用例和运行过程说明。重点强调了三个关键点:1)必须排序才能使用双指针和去重;2)需要正确处理三个位置的去重;3)当固定数大于0时可提前终止循环。

2026-04-22 10:24:05 574

原创 LangChain构建聊天机器人-聊天记录保存

本文介绍了聊天机器人系统中保存聊天记录的技术实现方法,主要分为内存存储和外部持久化存储两种方式。内存存储使用InMemoryChatMessageHistory类,适合临时调试但数据易丢失;外部存储如Redis、MongoDB等可实现永久保存,其中重点讲解了Redis的实现方式,通过RedisChatMessageHistory类配合session_id参数,能跨会话保持聊天记录。文章详细展示了两种存储方式的代码示例和运行流程,并比较了它们的优缺点:内存存储简单易用但临时,Redis等外部存储更稳定持久。

2026-04-21 10:53:58 660

原创 LeetCode 热题 100-----5. 盛最多水的容器

本文详细讲解盛水容器问题的双指针解法,适用于C++和Python。文章从基础概念(变量、循环、数组等)开始,逐步推导算法原理,强调双指针法的核心思想:初始时两指针分别指向数组两端,每次移动较矮的指针以寻找更大的盛水量。盛水量计算公式为宽度(指针间距)乘以较小高度。通过示例演示指针移动过程,解释为何必须移动较矮指针。提供完整的可执行代码(含详细注释和测试案例),并对比两种语言的实现差异。最后总结解题要点:掌握双指针移动策略、理解时间复杂度O(n)的优势,避免暴力解法的O(n²)复杂度。适合编程新手逐步学习,也

2026-04-21 10:22:52 449

原创 LangChain构建聊天机器人-LCEL

本文介绍了LangChain表达式语言(LCEL)的核心技术与应用方法。LCEL通过管道符"|"串联各种AI组件,能快速构建复杂的大模型应用。主要内容包括:1. LCEL基础概念与核心语法,通过"提示词→大模型→解析器"的流水线实现单步骤处理;2. 三种核心链类型:基础链(单步)、级联链(多步串联)和并行链(多任务同步);3. 关键组件如提示词模板、大模型连接器和输出解析器的使用方法;4. 使用LangGraph实现链式逻辑的可视化展示。文章通过大量代码示例和运行流程

2026-04-20 15:52:34 637

原创 LeetCode 热题 100-----4. 移动零

摘要:本文介绍了使用双指针法将数组中的零元素移动到末尾的算法。通过维护慢指针(记录非零元素位置)和快指针(遍历数组),先将非零元素前移,再在剩余位置补零。该方法满足原地修改要求(空间复杂度O(1)),保持非零元素相对顺序,时间复杂度为O(n)。提供了C++和Python的完整实现代码,包含详细注释和测试示例,适用于包括边界情况的各种输入。

2026-04-20 10:35:40 479

原创 LangChain 流式输出与提示词模板

本文系统介绍了流式输出技术和提示词模板在AI交互中的应用。流式输出通过实时逐字显示内容,显著提升了用户体验,消除了等待感。其实现基于API响应流机制,利用Python迭代器高效处理数据流。提示词模板则通过可复用的"框架+变量"结构,实现了AI指令的动态生成,具有复用性强、规范统一的特点。文章详细解析了LangChain框架中的标准语法,并提供了完整的代码实现流程,包括环境配置、模板定义、流式函数封装和实际应用示例。这两项技术共同构成了高效AI交互的基础,特别适用于聊天机器人、教育工具等实

2026-04-19 11:07:43 935

原创 LangChain 与大模型交互

本文详细介绍了LangChain大模型交的关键步骤与安全实践。主要内容包括:1. 环境配置:安装核心依赖包(langchain)和社区扩展包(langchain_community);2. 安全机制:通过load_key函数实现密钥安全管理,支持自动创建配置文件、隐藏输入和JSON加密存储;3. 监控集成:配置LangSmith环境变量实现调用追踪;4. 国内模型接入:以火山方舟为例,演示API密钥设置和模型调用流程。特别强调安全最佳实践,包括使用环境变量存储密钥、避免硬编码、通过.gitignore保护敏

2026-04-19 10:49:57 826

原创 LeetCode 热题 100-----3. 最长连续序列

摘要:本文详细讲解了如何求解无序整数数组中最长连续序列的长度问题。通过哈希集合实现O(n)时间复杂度,避免排序。关键思路是:1)将数组转为集合去重;2)只处理连续序列起点(num-1不在集合中);3)从起点向后统计连续数字长度。提供了Python和C++双语言实现,包含逐行注释、测试用例和自定义输入功能,适合零基础学习。算法满足严格的时间复杂度要求,是解决该问题的最优方案。

2026-04-18 10:49:06 515

空空如也

空空如也

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

TA关注的人

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