2011-6-24 笔试题讨论
来源:互联网 发布:video.js支持视频格式 编辑:程序博客网 时间:2024/05/16 14:10
本周主题,分享it面试和笔试题,现收录如下:
1、给定一个整数数组,求三个数之和的绝对值最小?
首先对数组排序,复杂度为nlgn。然后从1……n每次选取一个数,这里是n个复杂度。每次选取一个数后,再从数组的begin、end开始,相向移动。如果三者之和小于零,则begin++,若大于零,则end--,移动到绝对值不能再小为止。更新min值。这里需要遍历一遍数组,复杂度也为n。因此最后的复杂度为n平方。
提示:遇到此类数组求和问题,求差问题,通常先排序。
2、求最大凌乱子矩阵?
有矩阵a[m][n],矩阵内只有0和1,凌乱矩阵定义为正斜方向和反斜方向全为0,或全为1,要求求出一个给定矩阵a[m][n],其最大凌乱子矩阵是多大?
用DP思想可解,时间复杂度为o(n2).
维护一个矩阵k[m][n],令k[i][j]为以a[i][j]为右下角的凌乱矩阵的大小。则有状态转移方程:
k[i][j]= 1, 如果左上值、上值、左值不满足凌乱,则为1;
=min{k[i-1][j-1], k[i-1][j], k[i][j-1]},如果左上值、上值、左值(以a[i][j]为右下角边长为2的矩阵)满足凌乱。
矩阵k[m][n]初始化时,第一行和第一列值均为1。依次求出所有的解,矩阵内最大值则为最大凌乱子矩阵。
3、循环有序数组的查找问题?
在一个循环有序的数组里查找特定值。(循环有序就是指数组里的各项都是有序的,但是最小值不一定是数组的第 0 项,而可能是其中任意一项,然后逐项递增,到数组尾的时候再回到第 0 项),如3……81……2
解法:仍用二分查找法,需要考虑最小值的位置,时间复杂度为o(lgn),参考http://blog.csdn.net/aixiaolin/archive/2011/05/10/6408679.aspx
4、最大子段和
DP思想,o(n)
5、找出出现次数最小的单词
可用hash
6、堆排序(阿里云笔试题)
堆排序包括堆初始化、堆调整两部分。堆初始化需要从倒数第二层开始进行堆调整,直到堆顶;以后的堆调整只需要调整堆顶。
7、动态创建一个三维数组并初始化为0
8、用有限自动机表示正则表达式
9、求两单链表是否相交、是否带环、环长度、链表长度、连接点位置
10、linux命令行
根据端口号查找占用的进程号
awk、grep用法
11、字符串的编辑距离
12、一组整数,按何种顺序连接,使得连接后的数值最小?
将整数按照最高位排序后连接起来的数最小。如123、98、67,按照最高位排序后得到1236798,该数最小。
因为排序后的连接数,交换两数位置后,其值总是变小。
13、最大生成子序列LS
14、字典树trie tree和PAT tree
15、约瑟夫算法
- 2011-6-24 笔试题讨论
- 一道笔试题讨论
- 普天C++笔试题[讨论]
- 2011微软暑期实习笔试海选题目(欢迎讨论)
- 微软2012实习生笔试题及答案(望讨论)
- 系统设计一(百度笔试题,请大家讨论)
- 系统设计二(淘宝笔试题,请大家讨论)
- 系统设计三(淘宝笔试题,请大家讨论)
- 系统设计四(百度笔试题,请大家讨论)
- 系统设计六(百度笔试题,请大家讨论)
- 系统设计题五(百度笔试题,请大家讨论)
- 笔试题4:关于实型与整型之间转换的讨论
- 2015阿里巴巴实习生招聘笔试题,带答案,欢迎一起来讨论哇!
- 某公司校招笔试题 树形递归4维DP 图论 烦人的分类讨论
- 新浪笔试题 (2011在线笔试)
- 【面试笔试】淘宝2011笔试题
- 2011微软笔试题
- 2011微软笔试题
- 近八成公司业绩预喜 中报行情或可期待
- 我要开始在这里记录我的工程师成长之路2011.6.25
- 市场阶段底部已现 整固后还有更大反弹空间
- ubuntu10.10下安装五笔86输入法
- json 转换 map
- 2011-6-24 笔试题讨论
- 非标准编程能力
- 服务端编程手记
- Visual C++/MFC入门教程(二)
- 滚动图片
- 滚动图片
- 买了红的玩家还买了蓝
- Visual C++/MFC入门教程(三)
- js 幻灯片