技术面试题
文章平均质量分 76
dyx心心
这个作者很懒,什么都没留下…
展开
-
一道IT技术面试题 带有max函数的栈
题目大意:要求实现一个栈,除了普通的pop()函数和push()函数外,还有一个max()函数,功能是返回栈中最大值,要求时间复杂度和空间复杂度尽量低。 首先,很容易想到时间复杂度为O(1)的算法,我们设一个数组max[],max[i]表示从栈底到位置i的区间上的最大值,则我们插入的是后,设当前插入的位置是po,则我们比较max[po-1]和插入元素x的大小,较大值更新max[原创 2013-05-04 20:51:21 · 2053 阅读 · 0 评论 -
几道有意思的面试题
最近没事看了几道面试题,觉得还不错发出来试试,另附上自己的一些想法,及供参考,如有错误欢迎指出,若有更好想法也请指教 1.求 1+2+3+...+n 要求不用乘除法,for,while,if,switch,case等关键字以及条件判断语句A?(B:C)。 这道题有很多解法,下面发一个相对简单的。 #include using namespace std; int solve(i原创 2013-05-04 21:18:00 · 1274 阅读 · 0 评论 -
一道有趣的面试题
题目大意:给你一个由小写字母和*符号组成的字符串,要求你把其中的*符号全部转移到字符串的首部,而其他字母的相对序列保持不变,如*af*dxc*aa*转换成****afdxcaa。要求时间复杂度和空间复杂度尽量小。(其实这个问题还有好多变种,比如将一个字符串的大写字母转移到字符串前面或后面,将一个数组中的奇数和偶数区分开来,前半部分为偶数后半部分为奇数等等) 思路:这里介绍一个时间复杂度为O原创 2013-05-07 22:13:19 · 1016 阅读 · 0 评论 -
IT面试题——判断合法出栈序列
在技术笔试面试上,我们常常会遇到这样一类题型,如给你一个入栈序列,然后再让你判断几个序列是否有可能为它的出栈序列,如: 入栈序列为 1 2 3 4 5,则 1 2 3 4 5可能为它的出栈序列,而 5 4 1 2 3不可能为它的出栈序列。 对于n比较小的情况,我们往往可以通过手动模拟的方式来判断,对于n比较大的时候,这种方法就显得效率不佳了。 下面介绍一种通用的方法判定合法出栈序列,时间原创 2013-05-12 21:04:11 · 1985 阅读 · 0 评论 -
Google apac 在线笔试round2
笔试地址这周做了下google的在线笔试第二轮,总结一下。A题: 题目大意:给一个无向图,图中的边的权值会每小时变化一次,一天变化24次,然后给你k个询问,每个询问给你两个数D和S,问你在S时刻从节点1到节点D的最短路距离。思路:第一题还是比较简单,直接建图跑最短路即可,因为每次都是从节点1出发,所以可以只做24次最短路,将每个时刻从1节点到其他的节点的最短距离算出来记录一原创 2015-09-23 19:44:57 · 1159 阅读 · 0 评论