- 0
- 0
- 约1.52万字
- 约 16页
- 2018-01-08 发布于河南
- 举报
微软等面试数据结构算法100题【1-80】
/u20/5652ccd7-d510-4c10-9671-307a56006e6d.html---July 、 2010 年 11 月 19 日。21. 把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16 。首先我们定义的二元查找树 节点的数据结构如下:struct BSTreeNode{int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNode *m_pRight; // right child of node};2. 设计包含 min 函数的栈。定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。要求函数 min 、 push 以及 pop 的时间复杂度都是 O(1) 。3. 求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n) 。例如输入的数组为 1, -2, 3, 10, -4, 7, 2, -5 ,和最大的子数组为 3,
原创力文档

文档评论(0)