例子 找出一组数中的最大值。 递归思路: 找到左边和右边的最大值max左和max右,max左和max右中的最大值就是这组数的最大值;以此类推···直到所有数都排好序。 递归原理 子过程压栈出栈的过程。 任何递归过程都可以改成非递归。 递归时间复杂度的计算——Master公式 ...
分类:
其他好文 时间:
2020-02-09 20:13:29
阅读次数:
61
#模拟栈结构stack = []#压栈(向栈里存数据)stack.append("A")print(stack)stack.append("B")print(stack)stack.append("C")print(stack)#出栈(在栈里取数据)res1 = stack.pop()print(" ...
分类:
编程语言 时间:
2020-02-08 11:30:55
阅读次数:
55
Q:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 T: 看到这个问题, 我们最开始可能会想, 添加一个成员变量用于保存最小元素, 每次压栈时如果压栈元素比当前最小元素更小, 就更新最小元素. 但是这样会有一个问题, 如果最小元素被弹出了呢, ...
分类:
其他好文 时间:
2020-02-07 01:40:58
阅读次数:
76
一、题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列 ...
分类:
其他好文 时间:
2020-02-01 19:22:04
阅读次数:
49
面试题31:栈的压入、弹出序列 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹 ...
分类:
其他好文 时间:
2020-01-31 21:02:36
阅读次数:
74
CALL和JMP的区别 CALL会把调用处的下一个指令的地址压栈,而JMP不会 函数的调用过程 //funciton add(a,b){return a+b}?push第一个参数入栈push第二个参数入栈?call调用的返回地址压栈?跳转准备?push ebp //保存当前栈底?mov ebp,es ...
分类:
其他好文 时间:
2020-01-16 00:58:49
阅读次数:
97
数据结构中的堆和栈栈是一种连续储存的数据结构,具有先进后出的性质。通常的操作有入栈(压栈),出栈和栈顶元素。想要读取栈中的某个元素,就是将其之间的所有元素出栈才能完成。堆是一种非连续的树形储存数据结构,每个节点有一个值,整棵树是经过排序的。特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆 ...
分类:
其他好文 时间:
2020-01-13 10:36:22
阅读次数:
75
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的 ...
分类:
其他好文 时间:
2020-01-13 00:56:31
阅读次数:
67
Length of Last Word 这道题很简单,一般来说有两种方法 第一种就是用栈的思想,从头到尾扫描,遇到字母压栈,而遇到空格就将之前空格的全部出栈。当然出栈也有前提,就是后续必须还有元素,且非空格元素才可出栈。 第二种就是从尾部进行扫描,遇到第一个字母就加一,再直接进行统计,遇到下一个空格 ...
分类:
其他好文 时间:
2020-01-06 22:49:38
阅读次数:
87
指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 全局变量 内存映射 可以对内存的内容修改修改硬盘的内容 一般在数据库中经常使用 内存的分配与释放 c ...
分类:
编程语言 时间:
2019-12-31 10:45:46
阅读次数:
101