程序员面试100题精选
给思维做按摩
这个作者很懒,什么都没留下…
展开
-
程序员面试100题---1.把二元查找树转变成排序的双向链表
1.把二元查找树转变成排序的双向链表 输入:一颗二元查找树,将该二元查找树转换成一个排序的双向链表,要求不能创建任何新的结点,只能调整指针的方向。 在这里要明白几个概念 什么是二元查找数: 它首先要是一棵二元树,在这基础上它或者是一棵空树;或者是具有下列性质的二元树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根原创 2013-08-27 09:49:45 · 790 阅读 · 0 评论 -
程序员面试100题---2.设计包含 min 函数的栈
----------------------------------------------------------------------------------- 2、如题 ,设计包含min函数的栈 首先给大家介绍下栈的概念,栈也是一种线性表,和顺序表类似,只不过栈是一种插入和删除元素只能在头部进行的特殊线性表,元素的操作顺序是:后进先出(LIFO)。 栈的实现方式有原创 2013-08-27 16:09:12 · 849 阅读 · 0 评论 -
程序员面试100题---3.求子数组的最大和
程序员面试100题---3.求子数组的最大和 问题描述: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10,-4, 7, 2, 因此输出为该子数组的和18。 问题分析:原创 2013-08-30 20:05:21 · 572 阅读 · 0 评论 -
程序员面试100题---5.查找最小的k个元素
5.查找最小的k个元素(数组) 题目:输入n个整数,输出其中最小的k个。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。 分析:此题可以通过构造一个含有K个元素的最大堆来实现。然后通过不断的和堆顶元素比较,来找出最小的k个数。 -----------------------------------------------------------------原创 2013-08-30 20:01:31 · 645 阅读 · 0 评论 -
程序员面试100题---4.在二元树中找出和为某一值的所有路径(树)
4.在二元树中找出和为某一值的所有路径(树) 输入一个整数和一棵二元树。 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 打印出和与输入整数相等的所有路径。 例如输入整数22和如下二元树 10 / / 5 12 / / 4 7 则打印出两条路径:10, 12和10, 5, 7。 -------------原创 2013-08-30 20:02:22 · 554 阅读 · 0 评论