1.Python实现字符串反转的几种方法 题目: 在Python环境下用尽可能多的方法反转字符串,例如将s = "abcdef"反转成 "fedcba" 第一种:使用字符串切片 result = s[::-1] 第二种:使用列表的reverse方法 l = list(s) l.reverse() r ...
分类:
编程语言 时间:
2020-06-10 21:16:14
阅读次数:
77
最小栈的实现 摘自漫画算法: 题目:实现一个栈,该栈带有出栈(pop)、入栈(push)、取最小元素(getMin)3个方法。要保证这3个方法的时间复杂度都是O(1)。 如图: 解法步骤 1、设原有的栈叫作栈A,此时创建一个额外的“备胎”栈B,用于辅助栈A。 2、当第1个元素进入栈A时,让新元素也进 ...
分类:
编程语言 时间:
2020-06-05 20:48:51
阅读次数:
58
# 第11周知识总结 标签(空格分隔): 未分类 计算机科学或软件工程的领域对栈与队列的四个操作有特定的名称:栈:push: 加入一个物件,入栈、推入、…;pop: 取出一个物件,出栈、弹出、…;top: 检查一个「特定」的对象,顶部、头部、…,isEmpty: 和检查容器内有没有物件,为空、…。队 ...
分类:
其他好文 时间:
2020-06-04 18:06:22
阅读次数:
93
1、分类 单调递增栈:数据出栈的序列为单调递增序列 单调第减栈:数据出栈的序列为单调递减序列 2、操作(以单调递增栈为例) 如果新元素比栈顶元素大, 入栈 如果新元素比栈顶元素小,栈顶元素出栈,直到栈顶元素小于该元素,入栈该元素 3、示例 例如,给定一个序列 [ 1, 3, 5, 2, 4 ],当1 ...
分类:
其他好文 时间:
2020-05-30 21:55:30
阅读次数:
66
本题解法主要维护两个栈,一个是价格prices的单调递减栈。一个是weights栈随着prices 一起进栈出栈,计算w。 因为两个栈是一起进出,所以可以将两个栈写在一起Deque<List<>> JAVA class StockSpanner { Deque<Integer> prices; De ...
分类:
其他好文 时间:
2020-05-23 18:42:07
阅读次数:
61
1. 栈 栈的特点: 先进后出简单一句话 栈就是吃多了拉 from queue import LifoQueue # 进栈 def enter_stack(): s = LifoQueue(5) print(" 添加元素前 ") print(s.empty()) # 判断栈是否为空 print(s. ...
分类:
编程语言 时间:
2020-05-23 13:15:00
阅读次数:
85
class Solution { public: void preorderTraversal(TreeNode* root) { //1.先逐个访问左路结点,并将其入栈 //2.再访问栈顶元素的右子树 stack<TreeNode*> helper; TreeNode* cur=root; //只 ...
分类:
其他好文 时间:
2020-05-22 00:09:07
阅读次数:
59
一.相关概念 GC需要完成三件事:1,哪些内存需要回收?2:什么时候回收?3:如何回收? Java内存运行时区域的各部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着入栈和出栈操作。 每一个栈帧中分配多少内存基本上是在类结构确定 ...
分类:
编程语言 时间:
2020-05-21 19:17:01
阅读次数:
59
对于像是1+2的中缀表达式,我们可以轻松地运用代码来算出结果。 但是对于1+(2^2)/3*4这样的表达式,事情就变得有些复杂了... 对于上述的表达式,我们可以运用栈的相关知识来解决—建立两个栈,栈1放数字,栈2放运算符;遇到数字时入栈1;遇到运算符时,若栈2为空,则pop出栈1中的两个数运算,将 ...
分类:
其他好文 时间:
2020-05-20 18:55:48
阅读次数:
44
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 首先要明确队列的特性是先进先出,栈的特性是先进后出; 在进队列的方法里我们只要有容器能装元素就行了,所以直接往栈1里压; 在出队列方法里,要保证出队列的是最先进入的元素: 最直观的想法就是把栈1的元素挨个出 ...
分类:
其他好文 时间:
2020-05-19 22:45:58
阅读次数:
62