程序员面试题精选100题

时间:2017-04-22 07:19:10
【文件属性】:
文件名称:程序员面试题精选100题
文件大小:10.65MB
文件格式:PDF
更新时间:2017-04-22 07:19:10
程序员,面试 程序员面试题精选 100 题(01)-把二元查找树转变成排序的 双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点, 只调整指针的指向。 程序员面试题精选 100 题(02)-设计包含min函数的栈 题目:定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。要求函数min、push 以及 pop 的时间复杂度都是O(1)。 分析:这是去年google 的一道面试题。 我看到这道题目时,第一反应就是每次push 一个新元素时,将栈里所有逆序元素排序。这样栈顶元素将 是最小元素。但由于不能保证最后push 进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈 了。 在栈里添加一个成员变量存放最小元素(或最小元素的位置)。每次push 一个新元素进栈的时候,如果 该元素比当前的最小元素还要小,则更新最小元素。

网友评论

  • 不错,强推~学到了很多好的编程思维