微软100题
苦_咖啡
这个作者很懒,什么都没留下…
展开
-
【微软100题】002设计包含 min 函数的栈
/* * 题目: * 2.设计包含 min 函数的栈(栈) * 定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。 * 要求函数 min、 push 以及 pop 的时间复杂度都是 O(1)。 */ #include using namespace std; /* * 想法:用数组实现一个栈,这样 push和pop的时间复杂度都是O(1),每个数组元素,除了k原创 2015-01-22 15:59:37 · 634 阅读 · 0 评论 -
【微软100题】001把二元查找树转变成排序的双向链表(树)
/** * 题目: * 1.把二元查找树转变成排序的双向链表(树) 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。 10 / / 6 14 / / / / 4 8 12 16 转换成双向链表 4=6=8=10=12=14=16。 */ /* * 想法:如果采用中序遍历,那么就是从小到大排序的输出,原创 2015-01-16 17:00:18 · 767 阅读 · 0 评论 -
【微软100题】003求子数组的最大和
/* * 题目: * 3.求子数组的最大和(数组) * 题目: * 输入一个整形数组,数组里有正数也有负数。 * 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 * 求所有子数组的和的最大值。要求时间复杂度为 O(n)。 * 例如输入的数组为 1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为 3, 10, -4, 7, 2, * 因此输出为该原创 2015-01-22 16:46:02 · 682 阅读 · 0 评论