leetcode栈
文章平均质量分 52
岗岗ganggang
这个作者很懒,什么都没留下…
展开
-
leetcode445 剑指 Offer II 025. 链表中的两数相加 python
题目描述:题解:栈1.用stack1保存链表l1中节点,stack2保存链表l2中节点值。2.创建一个初始为None的节点,表示进位数字的into,初始为0.3.当stack1或stack2不为空或into不为0的时候执行加法:stack1栈顶元素值保存在a,stack2栈顶元素值保存在b,如果栈为空,则对应的值为0.4.计算a+b+into的值,(a+b+into)%10为当前位的和,(a+b+into)//10为当前位向前一位的进位,更新into。5.创建一个新节点newno原创 2022-01-05 21:08:11 · 583 阅读 · 0 评论 -
leetcode 剑指 Offer 31. 栈的压入、弹出序列python
题目描述:题解:用栈模拟创建一个栈astack(用list模拟),一个flag记录匹配到popped数组中的位置,将pushed中的每个数字依次压入astack,然后判断,如果当前栈顶的元素与popped数组flag位置匹配,则弹出栈顶元素,如果最终flag值与popped长度相同,则匹配,否则不匹配。class Solution: def validateStackSequences(self, pushed: List[int], popped: List[int]) -&g.原创 2021-12-18 11:03:44 · 458 阅读 · 0 评论 -
leetcode 剑指 Offer 30. 包含min函数的栈 python
题目描述:题解一:未通过1.在对MinStack进行初始化的时候,初始化一个栈stack和一个记录当前栈中最小元素的minnum,初始化为系统最大值。2.每次向stack中添加元素的时候,如果小于当前minnum则更新。但是没有考虑到可能minnum对应元素被pop删除的情况。class MinStack(object): def __init__(self): self.stack = [] self.minnum = sys.maxs.原创 2021-11-24 19:54:06 · 127 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列python
题目描述:题解:两个栈底层还是采用队列实现,但需要使队列保持先进先出特性来模拟栈。1.初始化两个栈stack1 stack2,stack1模拟队列,stack2辅助。2.向队列末尾添加元素,可以直接使用append实现。3.删除stack1头部元素实现方式:先将stack1中全部元素依次pop后添加到Stack2,此时stack2最顶端元素就是stack1的头部元素,用result记录stack2.pop()结果,然后再将stack2剩余元素依次放回stack1,保持stack1与.原创 2021-11-24 10:00:13 · 130 阅读 · 0 评论