Leetcode每日一题
文章平均质量分 98
虽然秋招结束,仍要坚持做题,希望能提高自己的算法水平!加油!
辣椒油li
这个作者很懒,什么都没留下…
展开
-
Leetcode中解决stack/heap-buffer-overflow错误
文章目录前言一、stack-buffer-overflow解决方法二、heap-buffer-overflow解决方法总结前言在leetcode中使用C语言做题时,可能会出现stack-buffer-overflow或者heap-buffer-overflow的问题,在这里,我记录一下自己遇到此类错误时一般的出错原因。一、stack-buffer-overflow我没有截图可以放上来,大家的错误信息应该都不一样,但是第一句话都是stack buffer overflow。遇到该错误时,可能由于原创 2020-12-22 10:42:57 · 10994 阅读 · 0 评论 -
Leetcode 股票买卖系列——动态规划全揽五题
文章目录前言一、题目描述二、动规思路1.状态设计2.状态初始化3.状态转移方程4.完整代码(python)三、举一反三1.不限制交易次数题目描述思路解析完整代码(python)2.含冰冻期的交易题目描述思路解析完整代码(python)3.含手续费的交易题目描述思路解析完整代码(python)4.限制交易不超过两次题目描述思路解析完整代码(python)总结前言 股票买卖问题是一类常见问题,这个系列包括五道题目(仅限于我做过的(+_+)),都是给定某几天的股票价格,要求求出通过交易能获得的最大收益。原创 2020-12-18 13:00:39 · 821 阅读 · 0 评论 -
Leetcode376. 摆动序列——混合贪心的动态规划
文章目录前言一、题目描述二、解题思路1.概念定义2.贪心思想3.动态规划求解三、完整代码总结前言这是一道贪心及动态规划方面的题。做这道题的时候看官方题解的思路,我理解了好久才想通≡(▔﹏▔)≡在这里记录下我的推导思路,和官方有些区别;如果大家理解不了官方题解,可以看看这篇博文,希望有些帮助~本文参考leetcode官方题解一、题目描述原题链接原序列用numsnumsnums表示。题目中需要注意的是一个元素就可以构成摆动序列,两个不同的元素就构成一个长度为2的摆动序列。二、解题思路我们使原创 2020-12-12 16:25:36 · 1425 阅读 · 0 评论 -
Leetcode321. 拼接最大数——单调栈的使用
文章目录前言一、题目描述1. 问题陈述2. 解题思路二、从单个数组中获得最大数三、合并使结果数最大四、完整代码(python版)总结前言这篇博文主要参考leetcode中的一篇题解一招吃遍力扣四道题,题解的作者详细总结了针对该类型题目的思路,以三道题目为例,讲解了如何用单调栈求解此类题目。Leetcode321题是其中的一道,属于困难题目,它的基本思想仍然是单调栈,不过在此基础上还需要一些后续步骤,才能求解最终答案。原题解已经写的比较清楚,这里就是自己的一个小回顾。大家可以看原题解,有配图好理解~原创 2020-12-02 18:44:41 · 1291 阅读 · 11 评论 -
Leetcode1122. 数组的相对排序——自定义排序中的比较函数,妙用!
文章目录前言一、题目描述二、使用哈希表(计数排序)/字典1.思路2.完整代码(python)三、自定义比较函数1.思路2.完整代码(python)总结前言这是一道简单题,我们可以很快地想到一种解决思路。我想记录下这道题是因为,它为自定义排序中的比较函数树立了典范(言重了→_→)。总而言之,尤其是对C语言用户,排序的比较函数设计真至关重要,我是python用多了不怎么设计sort中的key,所以猛一下看到这个自定义函数还是很震撼的(⊙ˍ⊙)…一、题目描述原题链接题目的意思也比较明确了,就是.原创 2020-11-14 17:34:00 · 439 阅读 · 1 评论 -
Leetcode327.区间和的个数-归并妙用
文章概览前言一、Leetcode327 题目描述二、归并算法1.前缀和求区间和2.归并思想划分问题3.横跨左右两边的区间三、完整代码(python版)总结前言归并排序是一种大家都熟知的经典排序算法,我认为归并的含义就在于它先将问题分解到最小,再两两合并起来,这样一层层向上,最终可以解决原来的大问题,本质是递归。下面这个图可以直观地反映出归并的内核(图中描述的是将数组 [5,4,2,7,1,6,8,3] 升序排序的过程)。了解了归并的核心,我们就可以把它的思想用到其他问题上,比如Leetcode327原创 2020-11-08 16:37:02 · 1608 阅读 · 1 评论 -
Leetcode1024. 视频拼接-贪心法
文章概览前言一、Leetcode1024 题目描述二、动态规划法1.解题思路2.完整代码三、贪心算法1.解题思路2.完整代码总结前言“视频拼接”是一个关于区间重合的问题,不过不是合并区间重合部分,而是求得能覆盖指定长度的最少区间个数。出现了“最少”的字眼,我们就考虑贪心法和动态规划。其中的贪心法还可以引申到“跳跃游戏”上去。解题方法参考官方题解一、Leetcode1024 题目描述题目链接从题目中提炼出的数学问题就是,获得能完全覆盖[0,T]这一片段的最少小区间个数,小区间之间允许存在重叠原创 2020-10-25 18:05:44 · 813 阅读 · 0 评论 -
Leetcode145. Morris后序遍历
文章概览Morris后序遍历Morris后序遍历算法详解Leetcode 501题目描述解题思路完整代码Morris后序遍历前面我们遇到了Morris中序遍历算法,它可以实现O(1)的空间复杂度我们结合Leetcode中第145题二叉树的后序遍历,来学习Morris后遍历算法。以下使用python3~Morris后序遍历算法详解本部分参考leetcode145官方题解在中序遍历的时候,一定先遍历左子树,然后遍历当前节点,最后遍历右子树。在常规方法中,我们用递归回溯或者是栈来保证遍历完左子树可以原创 2020-09-29 15:18:37 · 2482 阅读 · 0 评论 -
Leetcode501. Morris中序遍历
文章概览Morris中序遍历Morris中序遍历算法详解Leetcode 501题目描述解题思路完整代码Morris中序遍历一般二叉树的中序遍历需要用到递归算法,在递归过程中,程序会自动使用递归栈,保证了我们可以在遍历完左子树后,返回到当前节点继续后面的遍历。但是递归栈也占用了部分空间,因此出现Morris中序遍历方法,使得我们中序遍历的空间复杂度变为O(1),即与树的深度无关。我们结合Leetcode中第501题二叉搜索树中的众数,来学习Morris中序遍历算法。以下使用python3~Morr原创 2020-09-24 12:07:00 · 797 阅读 · 2 评论