数据结构与算法
文章平均质量分 87
以实战为线索,逐步深入React开发各个环节,掌握前端常用性能体验优化思路,打造完整前端工作流,提升工程化编码能力和思维能力。
EvLast
大鹏一日乘风起, 扶摇直上九万里
展开
-
我在代码随想录|写代码Day36 | 动态规划| 494.目标和, 518.零钱兑换II, 377. 组合总和 Ⅳ
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-05-05 23:28:16 · 416 阅读 · 0 评论 -
我在代码随想录|写代码Day35 | 动态规划| 01背包理论基础, 分割等和子集, 最后一块石头的重量II, 目标和
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-04-28 10:38:51 · 969 阅读 · 1 评论 -
我在代码随想录|写代码Day34 | 动态规划| 96.不同的二叉搜索树, 416. 分割等和子集,1049.最后一块石头的重量II
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-04-19 21:54:43 · 1068 阅读 · 2 评论 -
我在代码随想录|写代码Day33 | 动态规划| 路径问题| 62.不同路径,63. 不同路径 II,343. 整数拆分
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-03-04 23:16:05 · 1316 阅读 · 3 评论 -
我在代码随想录|写代码Day32 | 动态规划| 动态规划基础,509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
动态规划是将问题状态储存然后运用上一个状态去影响下一个状态的方法, 其实动态规划和贪心有点像但是却不相同,动态规划的核心是动态转移方程,然后就是转移方式,下面是动态规划的基础思考|解决方法。原创 2024-03-03 20:41:35 · 872 阅读 · 0 评论 -
我在代码随想录|写代码Day31 | 贪心算法总结篇 | 贪心终结一题
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-03-02 22:12:12 · 833 阅读 · 0 评论 -
我在代码随想录|写代码Day30 | 贪心算法 | 435. 无重叠区间,763.划分字母区间, 56. 合并区间, 738.单调递增的数字
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-03-02 21:55:48 · 881 阅读 · 0 评论 -
我在代码随想录|写代码|刷题总建议| Debug方法
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-02-29 23:55:44 · 1022 阅读 · 1 评论 -
我在代码随想录|写代码Day29 | 贪心算法 | 860.柠檬水找零,406.根据身高重建队列, 452. 用最少数量的箭引爆气球
一些同学可能也会疑惑,你怎么知道局部最优就可以推出全局最优呢?有数学证明么?刷题或者面试的时候,手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试贪心,至于严格的数学证明,就不在讨论范围内了。代码。原创 2024-02-29 23:37:09 · 913 阅读 · 0 评论 -
我在代码随想录|写代码Day28 | 贪心算法 | 1005.K次取反后最大化的数组和,134. 加油站,135. 分发糖果
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-02-28 22:27:41 · 995 阅读 · 0 评论 -
我在代码随想录|写代码Day27 | 贪心算法 | 122.买卖股票的最佳时机 II,55. 跳跃游戏, 45.跳跃游戏 II
局部最优推出全局最优,找不出反例,试试贪心!i 每次移动只能在 cover 的范围内移动,每移动一个元素,cover 得到该元素数值(新的覆盖范围)的补充,让 i 继续移动下去。而 cover 每次只取 max(该元素数值补充后的范围, cover 本身范围)。如果 cover 大于等于了终点下标,直接 return true 就可以了详细代码。原创 2024-02-28 19:29:55 · 942 阅读 · 0 评论 -
考点复习| 二分查找中的区间确定
🔥博客介绍`:🎥系列专栏:🎥 当前专栏:专题 : 数据结构帮助小白快速入门算法。原创 2024-02-27 20:56:59 · 1007 阅读 · 0 评论 -
代码随想录|学习工具分享
遇到看不懂的方法的时候(C++),可能是宏定义, 方法本身就是一个 宏定义,所以要找到定义他的地方,这种项目的代码 估计宏定义满天飞,如果没有好的文档,代码很难看自增自减运算符只能用于变量;不能用于常量和表达式。在使用map容器存储多个键值对时,容器会自动根据键值对的键大小,按照既定的规则进行排序(默认升序,可以自定义)使用map存储的键值对,键既不能重复也不能修改multimap和map的区别在于multimap容器可以同时存储多个键相同的键值对。原创 2024-02-26 23:18:51 · 6717 阅读 · 0 评论 -
我在代码随想录|写代码总结篇| 数组 |链表|哈希表|字符串|双指针法|栈与队列|二叉树|回溯算法|贪心算法|动态规划|单调栈
因为想要成为代码大神所以开始了我代码随想录的刷题过程。原创 2024-02-19 23:58:35 · 644 阅读 · 4 评论 -
我在代码随想录|写代码Day27 | 贪心算法 | 理论基础, 455.分发饼干, 376. 摆动序列,53. 最大子序和
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-11 23:28:31 · 983 阅读 · 0 评论 -
我在代码随想录|写代码Day26 |回溯算法|332. 重新安排行程 , 51. N皇后 , 37. 解数独
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-05 22:32:10 · 991 阅读 · 0 评论 -
我在代码随想录|写代码Day26 |回溯算法|491.递增子序列 , 46.全排列 , 47.全排列 II
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-04 23:31:17 · 1029 阅读 · 0 评论 -
我在代码随想录|写代码Day25 |回溯算法|93.复原IP地址 , 78.子集 , 90.子集II
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-04 22:44:39 · 948 阅读 · 0 评论 -
我在代码随想录|写代码Day24之回溯 -39. 组合总和 ,40. 组合总和 II ,131. 分割回文串
专题 : 数据结构帮助小白快速入门原创 2024-02-03 23:55:34 · 784 阅读 · 0 评论 -
我在代码随想录|写代码Day23之回溯 -回溯算法基础 , 77. 组合,216. 组合总和 III ,17. 电话号码的字母组合
本篇将题目的三个要点一一列出,并重点强调了和前面讲解过的 77. 组合 和 216.组合总和III 的区别,本题是多个集合求组合,所以在回溯的搜索过程中,都有一些细节需要注意的。原创 2024-02-03 23:35:30 · 886 阅读 · 0 评论 -
我在代码随想录|写代码Day22之二叉树-701. 二叉搜索树中的插入操作,450. 删除二叉搜索树中的节点,669. 修剪二叉搜索树 ,108. 将有序数组转换为二叉搜索树
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-02-01 23:30:20 · 955 阅读 · 1 评论 -
我在代码随想录|写代码Day21之二叉树-501. 二叉搜索树中的众数,236. 二叉树的最近公共祖先,235. 二叉搜索树的最近公共祖先
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-30 23:51:10 · 895 阅读 · 2 评论 -
我在代码随想录|写代码Day20之二叉树-700. 二叉搜索树中的搜索,98. 验证二叉搜索树,530.二叉搜索树的最小绝对差
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-30 22:52:37 · 398 阅读 · 3 评论 -
我在代码随想录|写代码Day19之二叉树-106.从中序与后序遍历序列构造二叉树,654.最大二叉树,617.合并二叉树
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-27 23:29:03 · 378 阅读 · 0 评论 -
我在代码随想录|写代码Day18之二叉树-404. 左叶子之和,513. 找树左下角的值,112. 路径总和,113. 路径总和 II
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-26 00:14:42 · 959 阅读 · 0 评论 -
我在代码随想录|写代码Day17之二叉树-222.完全二叉树的节点个数,110.平衡二叉树,257. 二叉树的所有路径
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-25 21:56:28 · 973 阅读 · 0 评论 -
我在代码随想录|写代码Day16之二叉树-二叉树的层序遍历, 二叉树的层次遍历 II, 二叉树的右视图,N叉树的层序遍历,在每个树行中找最大值,填充每个节点的下一个右侧节点指针,二叉树的最大/小深度
博主介绍: 27dCnc专题 : 数据结构帮助小白快速入门。原创 2024-01-24 18:59:13 · 919 阅读 · 1 评论 -
我在代码随想录|写代码Day11之双指针19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II
2.定义fast指针和slow指针,初始值为虚拟头结点。4.fast和slow同时移动,直到fast指向末尾。专题 : 数据结构帮助小白快速入门。5.删除slow指向的下一个节点。原创 2024-01-20 08:12:15 · 394 阅读 · 0 评论 -
我在代码随想录|写代码Day14之栈和队列-150. 逆波兰表达式求值,239. 滑动窗口最大值,347. 前 K 个高频元素
灵魂四问C++中stack,queue 是容器么?我们使用的stack,queue是属于那个版本的STL?我们使用的STL中stack,queue是如何实现的?stack,queue 提供迭代器来遍历空间么?陷阱1:栈是容器适配器,底层容器使用不同的容器,导致栈内数据在内存中不一定是连续分布的。陷阱2:缺省情况下,默认底层容器是deque,那么deque在内存中的数据分布是什么样的呢?答案是:不连续的,下文也会提到deque。原创 2024-01-23 00:01:48 · 1069 阅读 · 3 评论 -
我在代码随想录|写代码Day13之栈-.栈理论基础,232.用栈实现队列,225. 用队列实现栈,20. 有效的括号,1047. 删除字符串中的所有相邻重复项
HP STL 其他版本的C++ STL,一般是以HP STL为蓝本实现出来的,HP STL是C++ STL的第一个实现版本,而且开放源代码。P.J.Plauger STL 由P.J.Plauger参照HP STL实现出来的,被Visual C++编译器所采用,不是开源的。SGI STL 由Silicon Graphics Computer Systems公司参照HP STL实现,被Linux的C++编译器GCC所采用,SGI STL是开源软件,源码可读性甚高。原创 2024-01-22 13:04:36 · 1008 阅读 · 1 评论 -
ACM题解Day2|1.台风, 2.式神考试,3.DNA,4.方程求解
根据题目的意思,我们不难求出以下两个数值:- 得到了满分的题一共有 *n*−*m* 道;- 得到了满分的题目,加起来一共有 1e7 x (n - m) / n 分但是知道了得到了满分的题目一共有多少分,如何用其,以及非满分的题目的个数去计算出结果呢?这一关键在于“循环枚举”的思想,即利用计算机较高的运行速度,使用循环结构去计算出最后的答案。那对于这一道题目我们如何利用到这个思想求解呢?我们可以枚举有多少题目获得了一半分。假设是有 i 道题目获得了一半的分数,则有:原创 2024-01-22 00:02:34 · 1355 阅读 · 1 评论 -
我在代码随想录|写代码Day12之双指针-三数之和,四数之和,N数之和篇
双指针法:其实这道题目使用哈希法并不十分合适,因为在去重的操作中有很多细节需要注意,在面试中很难直接写出没有bug的代码。而且使用哈希法 在使用两层for循环的时候,能做的剪枝操作很有限,虽然时间复杂度是O(n^2),也是可以在leetcode上通过,但是程序的执行时间依然比较长 。原创 2024-01-20 14:39:15 · 848 阅读 · 0 评论 -
我在代码随想录|写代码Day10之双指针 -27. 移除元素,151. 反转字符串中的单词,206.反转链表
去除所有空格并在相邻单词之间添加空格, 快慢指针,遇到非空格就处理,即删除所有空格,手动控制空格,给单词之间添加空格。= 0说明不是第一个单词,需要在单词前添加空格,补上该单词,遇到空格说明单词结束,slow的大小即为去除多余空格后的大小,去除多余空格,保证单词之间之只有一个空格,且字符串首尾没空格,removeExtraSpaces后保证第一个单词的开始下标一定是0,到达空格或者串尾,说明一个单词结束。进行翻转,翻转,注意是左闭右闭 []的翻转,更新下一个单词的开始下标start。原创 2024-01-20 07:41:12 · 970 阅读 · 0 评论 -
我在代码随想录|写代码Day9之28. 实现 strStr(),459. 重复的子字符串,55. 右旋字符串(第八期模拟笔试)
题意就是要我们找一个字符串中有没有另一个字符串,然后如果有返回第一个字符出现的下标。用查找,就是上面的标准KMP写法,也可以用函数。专题 : 数据结构帮助小白快速入门。2.函数find()查找方法。思路:和上面这题差不多。原创 2024-01-20 03:33:05 · 381 阅读 · 1 评论 -
ACM题解Day1|1.Accurate Movement ,2.Help the Support Lady, 3.Absolute Game
思路 : 本题为模拟题主要是模拟方块的移动,其中 以两木块的最右端做为记录点. 先挪动a, 每次a块只能挪到和b块相同的位置, b块每次最多挪动(b-a).为什么因为有限制挡板然后俩木块要不能同时移动只能移动一一个03.1415927。原创 2024-01-19 15:55:25 · 685 阅读 · 1 评论 -
我在代码随想录|写代码Day8之 344. 反转字符串,541. 反转字符串 II, 54. 替换数字(第八期模拟笔试)
思路原地变化,C++直接调用函数进行左右交换,向中间移动sawp()c++用于交换俩元素的方法。原创 2024-01-16 22:21:04 · 446 阅读 · 1 评论 -
我在代码随想录|写代码Day15之二叉树遍历
二叉树遍历原创 2023-12-28 03:07:29 · 417 阅读 · 1 评论 -
C++ Lambda表达式的完整介绍
最常见的lambda的表达式写法如下这里只是计算两个数的和,我们一般情况下肯定是不会这么用的,更多的时候,我们都是和stl的一些算法结合使用,例如自定义一个结构体的排序规则和打印。int a;int b;int main()// 根据Item中成员a升序排序});// 打印vec中的item成员});return 0;这样的写法让我们代码更加简洁、清晰,可读性更强。在c++的官方文档中,给出了lamda表达式的四种写法,这里知乎的排版有点难用,所以直接在官方文档。原创 2023-12-26 23:02:25 · 227 阅读 · 1 评论 -
我在代码随想录|写代码|简单题理解KMP算法
说到KMP,先说一下KMP这个名字是怎么来的,为什么叫做KMP呢。因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP写过KMP的同学,一定都写过next数组,那么这个next数组究竟是个啥呢?next数组就是一个前缀表(prefix table)。前缀表有什么作用呢?前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。?原创 2023-12-25 17:21:56 · 133 阅读 · 0 评论 -
我在代码随想录|写代码Day6之 454.四数相加II ,三数之和
三数之和,四数相加原创 2023-12-20 22:22:03 · 67 阅读 · 0 评论