LeetCode
文章平均质量分 87
日刷百题
关关难过关关过
展开
-
LeetCode 热题100——单调栈
递增单调栈:栈中元素从栈底到栈顶依次增大递减单调栈:栈中元素从栈底到栈顶依次减小在学习完朴素的数据结构栈之后,单调栈作为栈的一种升级版应用,在某些情境下具有得天独厚的优越性:可将O(n²)的遍历复杂度降低至O(n)!以下就是几种经典的单调栈运用问题。一、字符串解码。原创 2023-12-21 19:08:52 · 2583 阅读 · 73 评论 -
LeetCode 热题100——栈与队列专题(三)
s1中的数据为1,2,3,入到s2变为3,2,1),再出s2的栈顶数据,这样就满足队列的性质了。以head为队列头节点,tail为队列尾尾节点的下一个节点,一共k个数据,开辟k+1个节点的循环单向链表,方便区分队列为空、为满以及一个元素的情况。1>左括号大于右括号:用栈实现,遇到左括号入,遇到右括号出,遍历完字符数组,此时栈不为空,则说明左括号数量大于右括号;2>右括号大于左括号:遇到右括号出时,判断栈是否为空,若此时栈为空,说明右括号数量大于左括号;2)队列为1个元素,front+1=tail。原创 2023-11-22 01:39:32 · 1342 阅读 · 42 评论 -
LeetCode 热题100——链表专题(一)
思路:这题题目首先要看懂,以示例1为例 即 342+465=807,而产生的新链表为7->0->8.可以看成简单的从左向右,低位到高位的加法运算,4+6=10,逢10进1,新链表第三位为3+4+1(第二位进的1),需要注意的的点是当9->9->9和9->9->9->9相加,相当于9->9->9->0和9->9->9->9相加解析:这里使用的是带头单链表,不用考虑头节点初始化问题;还有一点是:当l1和l2都走完时,还要确定进位是否为0,不为0,新链表还得在加一个节点,储存进位。原创 2023-11-05 13:31:09 · 833 阅读 · 53 评论 -
LeetCode 热题100——链表专题(二)
思路:使用快慢指针,慢指针走一步,快指针走俩步,如果是环形链表,那么快慢指针一定相遇,如果不是环形结构那么快指针或者快指针的next一定先为NULL.原创 2023-11-07 23:16:59 · 240 阅读 · 10 评论