- 博客(26)
- 收藏
- 关注
原创 动态规划(Dynamic Programming)基础解析
假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?这道题目的变形版给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。
2024-12-18 23:35:16
1007
原创 回溯法经典难题解析
本文将通过几个经典的回溯问题,展示回溯算法的应用及其在解决问题时的核心思想和技巧。这些问题包括全排列、全排列II、N皇后以及数独问题,本文将分别介绍每个问题的思路与实现。
2024-11-24 00:04:29
999
原创 回溯法基础入门解析
回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯法,一般可以解决组合、切割、排列、子集等问题
2024-11-22 21:22:45
787
原创 二叉树的深入学习与算法总结
二叉树作为数据结构中的一个重要概念,不仅在计算机科学中有着广泛的应用,如在数据库的索引、文件系统的组织、操作系统的内存管理等,而且在算法题目中也是一个常客。本文将对二叉树的常见问题进行深入探讨,并总结解题思路和算法实现。
2024-11-20 14:08:01
1180
原创 差分数组解析
差分数组是一种处理区间更新问题的高效数据结构。其核心思想是通过记录区间的“变化量”,从而将多次区间更新转化为常数时间操作,最终通过前缀和得到结果。
2024-11-14 21:36:18
503
原创 前缀和技巧解析
前缀和(Prefix Sum)是一种常用的算法技巧,用于高效地处理一系列连续子数组和的问题。通过构建一个额外的数组来存储从数组起始位置到当前位置的累计和,可以在常数时间内快速计算任意区间的和。
2024-11-14 20:11:10
872
原创 二维数组的花式遍历技巧
在算法和数据结构中,二维数组(或矩阵)的遍历经常出现在各种题目中,尤其是涉及图像处理、矩阵变换、螺旋排序等场景。本文将基于几个经典的题目,分析二维数组的遍历技巧,并提供详细的解题思路和代码实现
2024-11-10 17:13:40
1062
原创 C++ 哈希表入门:LeetCode经典问题解析2
在这篇博客中,我们将通过几个LeetCode经典问题的详细解析,来深入理解哈希表与双指针的应用。首先,我们将从哈希表入手,分析 「四数相加II」 和 「赎金信」 的解题思路,如何高效记录和查找数据,通过哈希表的映射关系来减少复杂度。接着,我们会探讨 「三数之和」 和 「四数之和」 这类需要精确匹配目标值的组合问题,结合双指针策略的去重与优化,使得求解大规模数组的组合更加简单高效。
2024-11-08 23:22:38
1176
原创 C++ 哈希表入门:LeetCode经典问题解析1
在C++中,哈希表(Hash Table)是一种强大的数据结构,通过键值对存储数据。哈希表能够在平均O(1)的时间复杂度内进行查找和插入操作,因此特别适合需要快速检索的场景。
2024-11-08 20:53:45
1062
原创 链表相关问题的多种解法(最小堆、双指针、栈)
在本文中,我们将深入探讨几道经典的链表相关的算法题,这些题目涵盖了不同的技巧,包括双指针、虚拟头结点、栈以及最小堆的运用。
2024-11-06 18:00:26
1221
原创 链表知识汇总
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的入口节点称为链表的头结点也就是head。
2024-11-05 16:56:25
1021
原创 双指针法从入门到精通
在处理数组和链表相关问题时,双指针技巧是经常用到的,双指针技巧主要分为两类:左右指针和快慢指针。所谓左右指针,就是两个指针相向而行或者相背而行;而所谓快慢指针,就是两个指针同向而行,一快一慢。在数组中并没有真正意义上的指针,但我们可以把索引当做数组中的指针,这样也可以在数组中施展双指针技巧,本文主要讲数组相关的双指针算法。
2024-11-03 01:15:43
629
原创 一套模板破解二分法所有难题
因为右边是开区间,即使right = middle,也不会把这个变量引入区间里面。,因为左比右闭区间,一般left=middle,就相当于这个搜索区间里放入了肯定不属于这个区间的值,肯定会影响这个范围。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。在数组中的索引位置,如果有多个目标元素,返回最小的索引。天内将传送带上的所有包裹送达的船的最低运载能力。重构后的矩阵需要将原始矩阵的所有元素以相同的。,分别表示想要的重构的矩阵的行数和列数。
2024-11-02 16:53:32
684
原创 二叉树的经典基础题目解析
在二叉树相关的算法题目中,有许多有趣且富有挑战性的问题。今天,我们就来深入探讨几个经典的二叉树基础题目,通过 C++ 代码实现其解法,并详细解释每一步的思路。
2024-10-29 14:09:00
397
原创 二叉树遍历之统一迭代法:轻松实现前中后序遍历
在二叉树的遍历中,我们常常会遇到前序遍历、中序遍历和后序遍历这三种方式。递归是一种很直观的实现方法,但迭代法也有其独特的优势。今天我们要介绍一种二叉树遍历的统一迭代法,它可以像递归法通过调整顺序那样,轻松实现前、中、后三种遍历方式。
2024-10-28 00:39:07
1104
原创 二叉树的层序遍历(迭代法和递归法)
在二叉树的相关操作中,层序遍历是一种重要的遍历方式,它按照二叉树的层次结构,从根节点开始,逐层地遍历节点,使得同一层的节点按照从左到右的顺序被访问。
2024-10-27 23:52:58
1491
原创 二叉树基础知识及其遍历方法
二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为和。二叉树广泛应用于计算机科学,包括数据存储、搜索算法和表达式解析等场景。
2024-10-27 23:49:56
451
原创 deque、stack、queue、和 vector辨析
deque(双端队列)、stack(栈)、queue(队列)、和 vector(动态数组)是 C++ 标准模板库(STL)中的常用容器,它们在功能、使用场景和实现方式上各有不同。
2024-10-24 22:54:13
744
原创 栈在字符串处理上的应用
栈作为一种重要的数据结构,在处理字符串相关的问题中发挥着关键作用。通过栈的后进先出(LIFO)特性,可以有效地管理字符的顺序和匹配关系。
2024-10-24 18:17:28
1075
原创 字符串匹配—KMP算法
这种类型字符串题目都可以采用暴力解法,套两层for循环也可以实现,但是时间复杂度太大,采用KMP算法之后,时间复杂度更低。所以掌握KMP算法还是有意义的
2024-10-23 18:21:41
743
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人