
LeetCode刻意练习
文章平均质量分 60
通过对leetcode题目的记录,更能够理解算法
凭栏听雨客
code hugger
展开
-
【BFS二叉树】113路径总和II
利用BFS遍历二叉树的节点,并且在遍历过程中保存到叶子结点可能需要的状态。原创 2024-03-13 22:43:25 · 521 阅读 · 0 评论 -
【LeetCode每日一题】【BFS模版与例题】【二维数组】1293. 网格中的最短路径
二维数组中BFS的扩展,需要记录每个节点剩余的特权原创 2024-03-05 23:17:09 · 622 阅读 · 0 评论 -
【LeetCode每日一题】【BFS模版与例题】【二维数组】130被围绕的区域 && 994 腐烂的橘子
通过两道题练习了二维数组中BFS非递归的使用并且腐烂的句子还使用了多源BFS原创 2024-03-04 23:22:17 · 696 阅读 · 0 评论 -
【LeetCode每日一题】【BFS模版与例题】863.二叉树中所有距离为 K 的结点
BFS通常使用的场景- 寻找两个节点之间的最短路径。- 在树或图中寻找特定深度或层级的节点。- 检查图是否是连通的。- 拓扑排序。- 解决迷宫问题等。原创 2024-03-01 21:33:35 · 681 阅读 · 0 评论 -
【leetcode每日一题】【滑动窗口长度固定】643.子数组最大平均数
解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75。输入:nums = [1,12,-5,-6,50,3], k = 4。给你一个由 n 个元素组成的整数数组 nums 和一个整数 k。如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是。维护的本质上就是滑动窗口里的子数组。,左指针向前为了符合要求:长度为k。请你找出平均数最大且 长度为 k。,并输出该最大平均数。需要维护的变量是sum。原创 2024-02-26 23:19:49 · 569 阅读 · 0 评论 -
【LeetCode】【滑动窗口长度不固定】978 最长湍流子数组
最长的指定瑕疵度的元音子串,是滑动窗口中长度不定求最大的题目原创 2024-02-26 20:14:20 · 509 阅读 · 0 评论 -
【leetcode每日一题】【滑动窗口长度固定】案例
滑动窗口在长度被限定下的案例原创 2024-02-25 21:58:34 · 516 阅读 · 0 评论 -
【leetcode每日一题】【滑动窗口长度不固定】案例
简单介绍一下滑动窗口在求最大值和最小值的应用原创 2024-02-25 21:28:05 · 897 阅读 · 0 评论 -
【LeetCode每日一题】 单调栈的案例 42. 接雨水
我们需要接雨水,所以必然是会要形成一个凹槽,因此我们只要构建一个单调递减栈,(凹槽的左边),当遇到大于栈顶元素的元素时,说明可以开始计算接的雨水的面积。直接通过下图理解更好理解。原创 2024-02-23 22:25:48 · 717 阅读 · 0 评论 -
【LeetCode每日一题】 单调栈的案例84 柱状图中最大的矩形
首先理解一下题意,想要求能够勾勒出的最大矩形面积⇒ Math.max(…以单个柱子为高度能够勾勒的最大面积)如何求单个柱子能够勾勒的?就是找到离这个柱子左右两边最近的比较小的,用left和right标记。如果没有,则right = arr.length -1, left = 0;⇒ 求左侧第一个比自己小的元素 + 求右侧第一个比自己小的元素⇒ 使用单调栈即可。原创 2024-02-23 21:01:25 · 382 阅读 · 0 评论 -
【LeetCode每日一题】单调栈316去除重复字母
402 是构造单调递增栈的过程中,通过k的数量判断要不要将栈顶元素弹出。316 是构造单调递增栈的过程中,通过 尚未遍历的元素中(`restMap`)是否还有和栈顶元素重复的元素,如果没有了,那么栈顶元素不可以去除,否则可以去除。316 还需要判断一下栈内(`usedMap`)是否有这个元素,如果已经有了,也不可以入栈。316 中需要用两个map来维护栈内的元素个数 和 尚未遍历的元素个数。原创 2024-02-22 23:26:55 · 589 阅读 · 0 评论 -
单调栈总结以及Leetcode案例解读与复盘
单调栈总结以及案例复盘(一文读懂单调栈),通过数个leetcode案例对单调栈进行讲解原创 2024-02-21 23:38:03 · 1756 阅读 · 0 评论 -
【LeetCode每日一题】单调栈 581. 最短无序连续子数组
通过图解讲解了最短无序连续子数组这道题,更深入理解了如何使用单调栈原创 2024-02-19 23:35:06 · 344 阅读 · 0 评论 -
【LeetCode每日一题】单调栈 901股票价格跨度
stack = [] 100 入栈, 80 ,80<100?80 入栈,return stack.length。60 60<70?yes while stack>0,70出栈,60入栈,return 1.被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。70 70<60?No ⇒ 70,70入栈,return2,设计一个算法收集某些股票的每日报价,并返回该股票当日价格的。80弹出,60入栈,return 1。从数组的左边找出等于或小于今天的股票的连续个数。原创 2024-02-18 23:30:27 · 382 阅读 · 0 评论 -
【LeetCode每日一题】单调栈 402 移掉k位数字
单调栈的使用案例,通过数学推理方式理解用法原创 2024-02-18 23:28:19 · 978 阅读 · 0 评论 -
【单调栈的基础概念和案例】 739每日温度&&496下一个更大元素
单调栈的基本用法是用于寻找下一个满足特性的元素原创 2024-02-15 12:44:44 · 437 阅读 · 0 评论 -
【LeetCode每日一题】二维前缀和基本概念与案例
介绍了二维前缀和数组和放了一道比较复杂的案例,如果这道案例能够看懂,二维前缀和便也能够理解了原创 2024-02-11 22:54:15 · 895 阅读 · 0 评论 -
【LeetCode每日一题】前缀和的例题1248. 统计「优美子数组」&&974. 和可被 K 整除的子数组
通过leetcode的几道例题练习了前缀和+hashMap的用法。原创 2024-02-11 22:45:12 · 720 阅读 · 0 评论 -
【LeetCode每日一题】525连续数组 303区域和检索(前缀和的基本概念和3个简单案例)
前缀和的基本概念和3个简单案例原创 2024-02-08 21:34:18 · 1414 阅读 · 0 评论 -
【LeetCode每日一题】1122. 数组的相对排序
一个数组根据另一个数组中元素出现的顺序进行排序原创 2024-02-08 20:53:19 · 434 阅读 · 0 评论 -
【正则表达式的妙用】
正则表达式在处理字符串中的妙用原创 2024-02-08 20:43:11 · 707 阅读 · 0 评论 -
二维差分数组的概念
前面介绍了一维差分数组的用法及案例,下面介绍一下二维差分数组的概念。原创 2024-02-04 22:52:18 · 469 阅读 · 1 评论 -
【LeetCode每日一题】2381. 字母移位 II&&2406. 将区间分为最少组数 (差分数组)
通过两道leetcode真题深入了解差分数组在不同场景下的应用原创 2024-02-04 22:31:20 · 869 阅读 · 0 评论 -
【差分数组&& 区间的综合用例】
根据前面两篇对差分数组和合并区间的介绍,以下是两道相关的例题,其中综合题融合了区间合并和差分数组,非常经典,也有点难度,值得仔细琢磨原创 2024-02-03 00:09:22 · 304 阅读 · 0 评论 -
【LeetCode每日一题】1109. 航班预订统计&&1094. 拼车 (差分数组)
通过图解和真题深入理解差分数组,关于开闭区间的处理。原创 2024-01-31 23:20:41 · 1114 阅读 · 0 评论 -
【LeetCode每日一题】56. 合并区间&&插入区间
leetcode重叠区间、合并区间和插入区间,解决区间问题原创 2024-01-29 23:06:06 · 612 阅读 · 0 评论 -
【LeetCode每日一题】152. 乘积最大子数组
给你一个整数数组nums,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。原创 2023-12-13 23:53:11 · 248 阅读 · 0 评论 -
【LeetCode每日一题】53. 最大子数组和
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。原创 2023-12-13 23:50:16 · 297 阅读 · 0 评论 -
【LeetCode每日一题】2270.分割数组的方案数
根据上面的思路可以优化,只记录最大值,没有必要用数组记录每个元素的前缀和,只要每次遍历的时候left++,就能得到每次遍历左边的值。给定一个数组,从 下标为 index 的地方切开,左边的数大于右边,保证右边至少有一个数。原创 2023-12-11 23:19:21 · 247 阅读 · 0 评论 -
【leetcode每日一题】565数组嵌套
一文用思路流程解析了如何从暴力求解到巧妙的解法,看完就懂原创 2023-11-27 22:32:01 · 228 阅读 · 0 评论 -
【LeetCode每日一题】525. 连续数组
找到一个连续子数组,其中0和1 的数量是一致的,求最大的连续子数组的长度。原创 2023-11-24 23:36:46 · 410 阅读 · 0 评论 -
对象按照属性进行排序
方法对数组进行排序,排序时传入一个比较函数,该函数会比较两个数组元素的大小。在比较函数中,我们使用一个循环来比较两个数组元素的每一个值,如果发现不同的值,就返回它们的差值,如果所有值都相同,则返回0。按照第一列排序,按第二列,最后一列。转换回对象形式,得到排序后的对象。在上面的代码中,我们首先使用。对数组的对象进行排序,原创 2023-06-15 23:35:14 · 676 阅读 · 0 评论 -
【贪心算法】使得供应量最小
贪心算法有N个线路。每个线路都有一个供应数组和一个需求数组。两个线路可以形成一个团体资源共享,但每个线路只能出现在一个团体中,现在要求形成团体。这种方式找出哪一个方案能够使得供应不足量最小。并求出这个最小值。function getMin(resource, requests) { let arr = []; for (let i = 0; i < requests.length; i++) { arr[i] = resource[i] - requests[i]; }原创 2023-06-15 20:10:33 · 112 阅读 · 0 评论 -
对对象数组进行排序
现在有一个对象是Department。他有三个属性:city 表明部门所在的城市。name表示部门的名称。PersonNum。现在我想要返回每个城市人数前五的部门。如果两个部门之间的人数一样。则按照city+“”+name的字典序升序排序。原创 2023-06-15 17:05:56 · 187 阅读 · 0 评论 -
简易的单词学习系统设计
对对象数组进行排序,先按照年龄从大到小进行排序,如果年龄一样则按照名字的字典序进行排序。原创 2023-06-15 17:02:07 · 268 阅读 · 0 评论 -
贪婪算法(greedy Algorithm)
当我们解决问题时,为了找到全局最优解,我们通过在每个步骤寻找局部最优解缺点:很少时候我们能够获得全局最优举例:如果我们要从第一个结点开始寻找最大的路径:greedy:1+3+7=11真正的1+2+4+8+12=27因此,局部最优解不一定会得到全局最优解我们什么时候可以使用满足两个条件:1.全局最优可以由局部最优得到2.最优子结构:an optimal solution ...原创 2020-03-27 23:28:17 · 3266 阅读 · 0 评论 -
leetcode找出随机字符
有两个字符串,s和t ,t 字符串是由s的字符打乱后+一个随机字符生成的。求随机字符。原创 2023-06-11 23:24:49 · 496 阅读 · 0 评论 -
刷完这篇文章,再也不怕链表啦!
这篇文章总结了链表主要的几种题型,并且把相同题型的题目放在一起,方便对比学习,形成框架。原创 2023-04-17 21:52:25 · 607 阅读 · 0 评论 -
leetCode每日一题js--01供暖器
对于每一个数组中的元素,寻找其与另一个数组中元素的差值,可以使用双指针来解决。原创 2022-10-31 06:50:17 · 906 阅读 · 0 评论 -
LeetCode 刻意练习01--两数之和
两数之和题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]需求:1.参数列表:给定整数数组nums和一个整数target2.返回值:一个含有两个整...原创 2020-03-01 19:31:43 · 154 阅读 · 0 评论