自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pyhon 链表两两交换节点(链表-中等)含源码(三十一)

单链表相邻节点交换问题:通过虚拟头节点和迭代法,逐步交换每对相邻节点。核心步骤为保存后续节点、调整指针指向、连接前驱链表。算法时间复杂度O(n),空间复杂度O(1)。关键点在于正确修改指针顺序,避免链表断裂或形成环,并统一处理头节点交换等边界情况。典型错误包括指针修改顺序不当、忘记连接后续链表等。

2025-10-29 11:54:19 849

原创 python 链表定义(链表-中等)含源码(三十)

问题描述:设计并实现一个单链表的类get(index)indexvalvalindexvalindexindexindex11->31->2->31->3。

2025-10-28 13:03:57 776

原创 python 链表反转(指针-栈-递归-中等)含源码(二十九)

题目描述:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]解释:原链表为 1->2->3->4->5,反转后为 5->4->3->2->1。示例 2:输入:head = [1,2]输出:[2,1]解释:原链表为 1->2,反转后为 2->1。示例 3:输入:head = []输出:[]解释:空链表反转后仍为空链表。

2025-10-28 12:58:02 871

原创 python 链表移除(链表-中等)含源码(二十八)

本文介绍了如何删除链表中所有指定值的节点。通过引入虚拟头节点(dummy)统一处理头节点和其他节点的删除逻辑,避免特殊处理。关键步骤包括:创建dummy节点指向原链表头,遍历链表时若发现目标值则跳过该节点,最后返回dummy.next作为新头节点。文章还提供了列表与链表相互转换的辅助函数,并解释了Python对象引用的底层原理。

2025-10-25 15:48:37 354

原创 pyhton 螺旋矩阵(指针-矩阵-中等)含源码(二十六)

摘要:本文介绍了一种生成n×n顺时针螺旋矩阵的算法。通过定义四个动态边界(top,bottom,left,right)来控制填充范围,按右→下→左→上的顺序循环填充数字1到n²,每次填充后收缩对应边界以避免重复。关键点包括:正确初始化二维数组、边界有效性判断、逆序填充处理(n=3时中心元素自动填充)。该算法时间复杂度O(n²),空间复杂度O(n²),适用于所有n值,体现了将复杂轨迹问题拆解为简单直线填充的解题思路。

2025-10-22 12:02:15 1182

原创 pyhon 长度最小子数组(数组-双指针-中等)含源码(二十七)

摘要:该问题要求在给定正整数数组中找到满足子数组和≥target的最小长度连续子数组。核心解法是采用滑动窗口技术,通过左右指针动态调整窗口范围:右指针扩展窗口直到和≥target,左指针收缩窗口以优化长度。时间复杂度O(n),空间复杂度O(1)。关键点包括初始值设为无穷大、使用while循环收缩窗口、最终判断是否存在有效解。滑动窗口适用于连续子数组求和问题,相比暴力枚举显著提升效率。

2025-10-22 11:07:04 794

原创 python 有序数组的平方(数组-双指针-简单)含源码(二十五)

题目:有序数组的平方排序 解题思路:给定非递减整数数组,返回各元素平方后仍有序的新数组。核心难点在于负数平方可能破坏原有顺序。 解法1(双指针法): 利用数组有序特性,最大值只可能出现在两端 左右指针从首尾向中间遍历,比较平方值,较大者逆序填入结果数组 时间复杂度O(n),空间O(n) 解法2(暴力法): 直接计算每个元素平方后排序 时间复杂度O(nlogn),空间O(n) 对比:双指针法效率更优(O(n)),适合大数据量;暴力法实现简单但性能较差。模板代码提供两种实现方式,双指针法是处理有序数组问题的典型

2025-10-21 11:46:04 871

原创 python 移除元素(双指针-简单)含源码(二十四)

【摘要】本文讲解如何原地移除数组中等于指定值val的元素,并返回有效元素数量k。核心解法是双指针法:快指针遍历数组寻找有效元素(≠val),慢指针记录有效元素存放位置。时间复杂度O(n),空间复杂度O(1)。关键点包括:1)数组只能覆盖不能直接删除;2)双指针降低时间复杂度;3)解法2优于解法1(避免频繁移动元素)。提供标准模板代码,并说明该方法的扩展应用场景(如去重、移动零等问题)。

2025-10-21 11:19:11 915

原创 pyhton(大厂笔试/面试)最长子序列(哈希-回溯-中等)含源码(二十三)

摘要:本文探讨了寻找未排序整数数组中最长连续序列长度的问题。提出了两种解法:回溯法(时间复杂度高,适用小数据)和哈希表法(O(n)时间复杂度)。回溯法通过排序去重后枚举所有可能序列;哈希表法则利用集合的O(1)查找特性,仅从序列起点延伸计算长度。两种方法的核心都是通过避免重复计算来提升效率,其中哈希表法更适合大规模数据。文中详细分析了两种方法的时间复杂度、代码实现及适用场景,并总结了解决此类问题的通用套路。

2025-10-19 11:40:10 499

原创 python (大厂笔试)字母异位词分组(数组-字符串-中等)含源码(二十二)

题目要求将字母异位词分组。核心思路是利用哈希表,以排序后的字符串作为键进行分组。具体实现:遍历字符串数组,对每个字符串排序得到唯一标识,将原字符串存入对应分组。最后返回所有分组列表。

2025-10-18 11:29:42 712

原创 pyhon(大厂笔试) 分割回文串(字符串-动态规划-回溯-中等)含源码(二十一)

本文介绍了分割回文串问题的解题方法。该问题要求将字符串分割为若干回文子串,返回所有可能的分割方案。解题核心是采用回溯算法,通过递归遍历所有可能的分割点,判断子串是否为回文串,并记录有效分割路径。文章详细说明了回溯过程的状态管理、终止条件和回溯步骤,提供了Python实现代码,并分析了时间复杂度和空间复杂度。此外还介绍了优化方法,如动态规划预处理回文判断,以及剪枝技巧。最后提炼出回溯法的通用解题模板,适用于类似需要枚举所有可能解的问题。

2025-10-18 10:17:32 1148

原创 python 单词搜索(回溯-矩阵-字符串-中等)含源码(二十)

本文介绍了在二维字符网格中搜索给定单词的回溯算法。重点讲述pyhton的递归栈和手动设计压栈和出栈。

2025-10-17 11:51:01 1279

原创 python 括号生成(字符串-动态规划-回溯-中等)含源码(十九)

该问题要求生成n对有效括号的所有组合。核心解法是回溯法,通过跟踪已使用的左右括号数量(left, right)来确保组合有效性。

2025-10-17 11:36:44 603

原创 pyhon 电话号码字母组合(回溯-哈希-中等)含源码(十八)

错误教训:映射表字符错误、空输入未处理等 “基础层错误”,会导致后续所有逻辑偏离目标(如生成无效组合、冗余计算);启示:解题前需先确认 “基础组件” 的正确性(如映射表、边界条件),再推进核心逻辑,避免 “地基不稳”。

2025-10-16 20:58:08 1169

原创 python 组合求和 (回溯-中等)含源码(十七)

本文介绍了使用回溯法解决组合总和问题的算法思路。给定一个无重复元素的整数数组和一个目标值,要求找出所有使数字和等于目标的组合,同一数字可重复使用,但组合顺序不同视为相同。算法通过回溯法的"选择-递归-撤销"框架,结合剪枝优化和起始索引控制来避免重复组合。文章详细讲解了核心步骤、边界条件处理、时间复杂度分析,并比较了回溯法与迭代法的优劣。

2025-10-16 20:47:47 1058

原创 python 子集(回溯、递归-中等)含源码(十六)

这篇文章介绍了如何通过回溯算法解决给定不重复整数数组生成所有子集的问题。关键点包括: 回溯算法通过起始索引控制避免重复子集 每次递归先收集当前子集状态 通过遍历从start开始的元素构建不同子集 , 文章对比了子集与全排列问题的区别,解释了start索引的作用,并提供了完整的Python实现代码。此外,还讨论了幂集的数学特性、复杂度分析和回溯算法的通用性,为处理类似问题提供了思路框架。

2025-10-15 09:37:39 837

原创 python 全排列(回溯、递归-中等)含源码(十五)

本文介绍了如何通过回溯算法生成不含重复数字数组的所有全排列。核心思路是采用递归实现"选择-递归-撤销"的三步操作:选择一个元素加入当前排列,递归处理剩余元素,然后撤销选择以尝试其他可能性。

2025-10-15 09:28:55 1051

原创 pyhon 杨辉三角(动态规划-简单)含源码(十四)

初始化结果容器:创建空列表result用于存储所有行。逐行生成外层循环从 0 到 numRows-1,控制生成的行数。每行先初始化为全 1 列表(长度为当前行号 + 1),确保首尾元素正确。内层循环计算中间元素:对于第 i 行(i ≥ 2),从第 1 个元素到第 i-1 个元素,每个元素的值为上一行相邻两元素之和。收集结果:将生成的每行添加到result中,最终返回result。

2025-10-12 16:01:27 347

原创 python 爬楼梯(动态规划-简单)含源码(十三)

掌握基础很重要

2025-10-12 15:23:13 341

原创 python 股票获取最大利润(贪心算法-简单)含源码(十二)

给定数组prices,其中prices[i]表示股票第i天的价格。你只能选择某一天买入,在未来某一天卖出(买入后才能卖出),计算能获取的最大利润。若无法获利,返回 0。5解释:第 2 天(价格 1)买入,第 5 天(价格 6)卖出,利润 6-1=5(注意:卖出必须在买入后,且需价格上涨才能获利)。0解释:价格持续下跌,无任何获利机会,返回 0。

2025-10-11 10:38:00 685

原创 pandas、numpy 和 matplotlib 三个数据科学常用库的核心指令整理

pandas、numpy 和 matplotlib 三个数据科学常用库的核心指令整理,涵盖各自的主要功能和典型用法。

2025-10-10 11:32:47 312

原创 python 判断括号字符串是否有效(栈-简单)含源码(十一)

栈的真实考试示例+小白能看懂的相关知识,希望对你有所帮助!

2025-10-10 11:04:58 990

原创 python 查找目标值在排序数组中的位置或插入点 (二分法-简单)含源码(十)

给定一个的数组nums和一个目标值target,在数组中找到目标值并返回其索引。若目标值不存在于数组中,返回它按顺序插入的位置。要求算法的时间复杂度必须为O(log n)。target = 52解释:目标值 5 存在于数组中,位于索引 2 处。target = 21解释:目标值 2 不存在于数组中,按升序应插入在 1 和 3 之间,对应索引 1。target = 74解释:目标值 7 大于数组中所有元素,应插入在数组末尾,对应索引 4(数组长度为 4)。

2025-10-10 10:10:22 667

原创 python 字符串压缩(字符串-中等)含源码(九)

解题关键核心思路是遍历字符串,统计连续重复字符的次数,拼接压缩结果后与原字符串比较长度。

2025-10-09 21:08:33 1245

原创 python 矩阵中寻找就接近的目标值 (矩阵-中等)含源码(八)

面对有序数据结构(如本题的矩阵),不要急于暴力遍历,而是先观察其有序特性(行 / 列升序),思考如何利用特性减少搜索范围。右上角作为起点,每次比较都能明确排除一行或一列,这种 “非此即彼” 的决策逻辑,是减少无效操作的核心。等)存储中间结果,未依赖额外的数据结构(如列表存储所有元素),体现了对空间复杂度的优化意识,尤其适合大规模数据场景。的矩阵(元素为浮点数),矩阵具有每行从左到右升序、每列从上到下升序的特性。解释:5 与 5.1 的差值为 0.1,是矩阵中最小的差值,其位置为第 0 行第 1 列。

2025-10-09 17:33:42 731

原创 函数的定义位置和归属不同导致的调用区别(经验总结)

终止条件:空节点深度为0return 0# 分治:左子树深度 vs 右子树深度,取max后+1(包含当前节点)res = [] # 存储遍历结果# 定义递归辅助函数if not node: # 终止条件:节点为空,返回returndfs(node.left) # 1. 递归遍历左子树res.append(node.val) # 2. 访问根节点,加入结果dfs(node.right) # 3. 递归遍历右子树dfs(root) # 从根节点开始递归return res。

2025-10-08 16:20:31 350

原创 python 二叉树的最大深度(二叉树-简单)含源码(七)

从根节点到最远叶子节点的最长路径上的。

2025-10-08 16:01:56 1416

原创 python 二叉树的中序遍历(二叉树-简单)含源码(六)

遍历顺序遵循「左子树 → 根节点 → 右子树」的规则(即 “左 - 根 - 右”),是二叉树三种基础遍历(前序、中序、后序)之一,需递归或迭代实现。

2025-10-08 15:17:33 824

原创 python 相交链表 (链表-简单) 含源码 (五)

给定两个单链表的头节点headA和headB,找出并返回两个链表相交的起始节点。若两个链表不存在相交节点,返回null。:链表相交的定义是 “节点在内存中指向同一位置”(即地址相同),而非 “节点值相同”;且函数返回后需保持链表原始结构,整个链式结构中不存在环。skipA = 2skipB = 3skipA = 3skipB = 1解释:相交起始节点为值为 2 的节点,A 中该节点前有 3 个节点,B 中前有 1 个节点。skipA = 3skipB = 2解释:两个链表无相交节点,故返回null。

2025-10-04 09:51:46 504

原创 python 矩阵置零(矩阵-中等)含源码(四)

置零),会导致后续遍历到被新置为 0 的元素时,错误地将其所在行 / 列再次置零(即 “二次污染”)。空间,进一步优化可复用矩阵的第一行和第一列作为标记位(用两个额外变量记录第一行和第一列是否本身含 0),将空间复杂度降至。:遍历结束后,根据记录的行索引将对应行全部置为 0,再根据记录的列索引将对应列全部置为 0。的矩阵,若矩阵中某个元素为 0,则将该元素所在的行和列的所有元素都设为 0,要求使用。(即不使用额外的、与原矩阵规模相当的空间,直接修改原矩阵)。),确保所有需要置零的位置被提前记录。

2025-10-03 18:00:25 1107

原创 python 最大子数组和(数组-中等)含源码(三)

数组中的一个连续部分(元素在原数组中连续排列)。

2025-10-03 17:24:19 788

原创 python 和为k的字数组(子串-中等)含源码 (一)

该文介绍了一种利用前缀和与哈希表解决子数组和等于k的问题的方法。通过维护前缀和字典,将问题转化为查找sum_count[j]=sum_count[i]-k的出现次数。实现时,初始化字典包含{0:1}以处理第一个元素即为k的情况,遍历数组时累加前缀和,检查sum_count-k是否存在字典中并累加结果,最后更新字典中当前前缀和的出现次数。该方法优化了时间复杂度至O(n)。

2025-10-02 17:21:12 218

原创 python 无重复字符的最长子串(窗口滑动-中等)含源码(二)

python面试,找工作算法题

2025-10-02 12:03:05 352

原创 VISO导出没有黑边且大小合适的PDF

VISO导出没有黑边且大小合适的PDF

2025-07-17 17:01:22 319

原创 SCI-IEEE latex模板下载

IEEE论文模板直达

2025-01-07 10:47:13 489

原创 如何在一年之内成为10w+的UP主

通过上述完整的账号定位和规划,你将从入门科普切入,逐步深入到科研方法与工具实践,再到实战项目教学。在一年内建立从基础到高阶的内容矩阵,利用互动和推广策略不断增强用户粘性和曝光,最终实现10万+粉丝的目标。聚焦人工智能(AI)与科研领域,涵盖基础科普、科研方法与工具使用、实战项目教学。为对前沿科技、人工智能和学术研究感兴趣的用户提供高质量、可操作、易理解的内容。

2024-12-20 22:35:44 736

原创 ndarray和list的联系与区别

ndarray(来自NumPy库)和Python内置的 list 都是用于存储数据的容器,但在功能、性能和应用场景上有显著区别。以下是它们的 联系与区别 的详细说明:

2024-12-07 16:13:36 564

原创 更新word2021后,mathtype不可用了的解决方法

更新word2021后,mathtype不可用了的解决方法

2024-10-15 15:54:35 1941

原创 viso使用技巧

学习VISO的一些经验分享

2024-10-10 20:21:43 1473

原创 word多图片排版(图片不变性)

word里面插入图片,图片不变性。

2024-10-08 16:25:42 488

空空如也

空空如也

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

TA关注的人

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