E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
各种面试题
[
各种面试题
] 匹配的字符串模式的个数
今天AMAZON的一道题,其实数据很弱,直接暴力都能过的。然后第一反应是用字典树,就是如果匹配到*号的时候,就把一层都往下搜索一遍。然后第二反应是用KMP,这样复杂度是O(n*(n+m))的。直接字符串读取一行还没弄出来。囧。#include #include #include #include usingnamespacestd; boolisMatch(chara,charb) { if(a
a83610312
·
2013-10-15 14:00
[
各种面试题
] 找出三个只出现一次的数
题目:一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。http://zhedahht.blog.163.com/blog/static/25411174201283084246412/分析:在博客http://zhedahht.blog.163.com/blog/static/2541117420071128950682/中我们讨论了如何在一个数组中找出
a83610312
·
2013-10-15 13:00
[
各种面试题
] 子序列的个数、排列木桩
来自:http://blog.csdn.net/thebestdavid/article/details/11908961注意这里是求子序列的个数。子序列的个数题目详情: 子序列的定义:对于一个序列a=a[1],a[2],......a[n],则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子序列,其中1<=p1
a83610312
·
2013-10-14 22:00
[
各种面试题
] 整数划分问题
http://www.cnblogs.com/xiaoxian1369/archive/2011/09/12/2174212.html:整数划分---一个老生长谈的问题:1)练练组合数学能力.2)练练递归思想3)练练DP总之是一道经典的不能再经典的题目:这道好题求:1.将n划分成若干正整数之和的划分数。2.将n划分成k个正整数之和的划分数。3.将n划分成最大数不超过k的划分数。4.将n划分成若干奇
a83610312
·
2013-10-13 21:00
[
各种面试题
] 最长重复子串-后缀数组
正好练习写一下后缀数组。#include #include #include #include usingnamespacestd; structnode { char*s; intstart; node(char*ss,intt):s(ss),start(t){} booloperatorsa; for(inti=0;s[i]!='\0';i++) sa.push_back(node(s+i,
a83610312
·
2013-10-11 18:00
[
各种面试题
] 交叉大小的序列
这是G家的面试题:首先给你一个字符序列,比如2,15,46 然后让你生成这么一个序列,其中 s1s3s5 #include #include #include usingnamespacestd; voidprint(vector&nums,vector&cur,vector&used); voidprintInterwineSeq(vector&nums) { if(nums.empty())
a83610312
·
2013-10-11 15:00
[
各种面试题
] N个点来回路径最小
N个点来回路径最小:2013年Hulu面试中出现过。二维平面上有n个点,已按照x坐标从左到右排序(所有点的x坐标均不同),存放在数组points中。需要从最左边的点出发,先向右扫描访问一些点,到达最右边的点,然后再向左扫描,访问第一次没有访问的点,最后回到最左边的点。扫描过程中经过的总的欧式距离要最小。返回这个最小的欧式距离。样例:points(x,y):[(0,0),(30,40),(31,0)
a83610312
·
2013-10-09 20:00
[
各种面试题
] 棋盘寻宝扩展
题目描述:现在有一个8*8的棋盘,上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于100),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角。从棋盘的左上角移动到右下角的时候的,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,但是拿到的所有的礼物的价值之和不大于一个限定值limit,请设计一个算法请实现
a83610312
·
2013-10-08 20:00
[
各种面试题
] 矩阵覆盖求面积或者周长或者并的面积
首先求覆盖面积有两种方法:一是先离散化,然后分成n*m个小格子,然后读入所有矩形,把矩形包含的所有小格子染色,最后统计被染色的格子的面积求和。二是用线段树+扫描线,很巧的方法,但是别人的代码我没有看懂。http://blog.csdn.net/dooder_daodao/article/details/6334169贴一个离散化的代码过来:注意map[i][j]表示的是 x[i],y[i],和x[
a83610312
·
2013-10-08 12:00
[
各种面试题
] 两条路径的最大收获
题目不太记得清了,大意是有个MXN的棋盘,然后每个格子上有一个价值,需要从左上角走到右下角再走回来,但每个格子只能走一次,请问来回的最大收获是多少。找了个NOIP的原题:题目链接: http://soj.me/1767考查从(1,1)到(m,n)找两条不相交的路径使得它们的权值和最大。 法1:动态规划 设f[k][i][j]表示第k步,第1条路径走到第i行,第2条路径走到第j行的最
a83610312
·
2013-10-08 09:00
[
各种面试题
] 树的最小高度
题目描述:给定一棵无向树,我们选择不同的节点作为根节点时,可以得到不同的高度(即树根节点到叶子节点距离的最大值),现在求这棵树可能的最低高度。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为一个整数n(1 #include #include #include #include #include #include #include #include usingnamespacestd
a83610312
·
2013-10-07 23:00
[
各种面试题
] 买卖股票最多K次
题目描述:给定一个大小为n的数组,数组的元素a[i]代表第i天的股票价格。设计一个算法,计算在最多允许买卖k次(一买一卖记为一次)的条件下的最大收益。需要注意的是,你不能同时拥有两份股票。也就是说在下次买入前,你必须把手头上原有的股票先卖掉。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为两个整数n和k(1 #include #include #include #include #
a83610312
·
2013-10-07 22:00
[
各种面试题
] 二叉树旋转查询
题目描述http://ac.jobdu.com/problem.php?pid=1541直接模拟就好了,但是我的代码后面的样例要超时。。。不知道为什么,把cin,cout改成scanf之后居然就变成outputlimitexceed了,奇怪。算了,思路对的就行,懒得去搞了。#include #include #include #include #include #include #include
a83610312
·
2013-10-07 21:00
[
各种面试题
] 黑白迷阵
题目描述:黑白迷阵是一个GrassLand编写的手机游戏,它的规则非常简单,有如下4*5的棋盘,其中一些是格子是黑色,一些格子是白色的,每当点击其中某一个格子,它以及它上下左右五个格子的颜色会发出反转,如下图 游戏胜利的条件很简单,把所有的格子变为黑色即可。GrassLand想知道,给定一个游戏格局,至少需要几次点击,就可以获得游戏的胜利。输入:输入包含多组测试用例
a83610312
·
2013-10-07 17:00
[
各种面试题
] 谷歌上机笔试--分数
题目描述:有一棵无限完全二叉树,他的根节点是1/1,且任意一个节点p/q的左儿子节点和右儿子节点分别是,p/(p+q)和(p+q)/q。如下图:它的层次遍历结果如下:1/1,1/2,2/1,1/3,3/2,2/3,3/1,...有如下两类问题:1.找到层次遍历的第n个数字。如,n为2时,该数字为1/2;2.给定一个数字p/q,输出它在层次遍历中的顺序,如p/q为1/2时,其顺序为2;输入:输入包含
a83610312
·
2013-10-07 16:00
[
各种面试题
] 两个数组和的第K大
这是谷歌的一道面试题,有两个数组A和B,假设有一个数组C,C[i]=A[j]+B[k],即C中的元素是A和B中两个元素的和。让你求C中第K大的数字。之前有一篇转载的用堆来求的方法,因为每出堆一次最多添加两个元素进来,所以堆的最大容量是2*k,所以入堆出堆复杂度是logK,最后的复杂度是KlogK。注意添加的时候要判断是否已经进过堆。#include #include #include #inclu
a83610312
·
2013-10-07 14:00
[
各种面试题
] N皇后问题非递归版
N皇后问题的非递归版本:#include #include #include usingnamespacestd; constintN=4; vectorrowPut(N+1,0); voidprint() { vector>grid(N,vector(N,'.')); for(inti=1;ios(cout,""); copy(grid[i].begin(),grid[i].end(),os
a83610312
·
2013-09-23 20:00
[
各种面试题
] 最大子矩阵和
有一个n*m的二维整型数组矩阵matrix,计算它的最大子矩阵和(允许子矩阵为空)。样例:它的最大子矩阵和为29,对应的子矩阵为图中蓝色线条圈出的矩阵。提示:时间复杂度O(n^3),可以先尝试完成最大连续子段和问题。流传很广的题了。voidinitAccSum(vector>&mat,vector>&accSum); intmaxSeqSum(vector>&accSum,vector>&mat,
a83610312
·
2013-09-21 22:00
[
各种面试题
] 单词游戏
一个n*m的字母网格grid,格子中的字母属于26个大写字母。选择某个格子作为起始点,每一步可以移动到上下左右相邻的格子中,这样遍历经过的字母组成了单词(每个格子只能访问一次)。判断是否能够在网格中找到给定的单词pattern。样例:n=3,m=4 Grid: PACD BGHI MNDC 对于pattern="DCHGB",返回true。 对于pattern="PBGNDC",返回true。
a83610312
·
2013-09-21 20:00
[
各种面试题
] 复制有向图
复制一个有向图。输入是有向图中的一个结点指针,返回复制的图中对应的结点指针。有向图中结点的定义为:C++structGraphNode{ intdata; vectorneighbors; GraphNode(intdata):data(data){} };跟复制带随即指针的链表其实是一样的。思路就是先复制新节点,然后复制连接关系,最后再把新复制的节点弹出来。算法一次写出来的,很高兴~不过好多笔误
a83610312
·
2013-09-21 19:00
[
各种面试题
] 非负大整数加法
给定两个字符串表示的非负整数a和b,计算它们的和a+b,结果也用字符串表示。最近才学到写这种简洁的while,还比较喜欢。//返回a+b的结果stringadd(conststring&a,conststring&b){if(a.empty()||b.empty())returna.empty()?b:a;stringret;intcarry=0;intp1=a.size()-1,p2=b.siz
a83610312
·
2013-09-19 21:20
各种面试题
[
各种面试题
] 判断是否平衡二叉树
判断一棵二叉树是否是平衡二叉树,递归在统计深度的时候就可以返回结果了。/*树结点的定义(请不要在代码中定义该结构)structTreeNode{TreeNode*left;TreeNode*right;}*/bool_isBalanced(TreeNode*root,int&depth);boolisBalancedTree(TreeNode*root){if(!root)returntrue;i
a83610312
·
2013-09-18 11:29
各种面试题
[
各种面试题
] 判断是否平衡二叉树
判断一棵二叉树是否是平衡二叉树,递归在统计深度的时候就可以返回结果了。/* 树结点的定义(请不要在代码中定义该结构) structTreeNode{ TreeNode*left; TreeNode*right; }*/ bool_isBalanced(TreeNode*root,int&depth); boolisBalancedTree(TreeNode*root){ if(!root) ret
a83610312
·
2013-09-18 11:00
[
各种面试题
] 交替字符串
2012google的题?如果字符串str3能够由str1和str2中的字符按顺序交替形成,那么称str3为str1和str2的交替字符串。例如str1="abc",str2="def",那么"adbecf","abcdef","abdecf","abcdef","adefbc"等等都为str1和str2的交替字符串。更形式化的,str3的生成算法如下:str3="" whilestr1不为空or
a83610312
·
2013-09-18 10:00
[
各种面试题
] 字符串匹配查询
传闻是FB2012的题,真不是盖的啊。有一个长度为n的字符串str,有非常多的关键字query(长度不超过10),需要判断每个关键字是否是str的子串。注意:query是动态的输入进行查询的,预先并不知道所有的query。请实现2个函数initWithString(str)和existSubString(query)。我们会首先调用一次 initWithString(str),你可以在这个函数中做
a83610312
·
2013-09-18 10:00
[
各种面试题
] 区间相交
有n个左右端点都为整数的区间,判断每个区间是否有与其它某个区间相交(区间端点重合也算相交)。第一个反应是线段树,先留一下,写个排序遍历的:/* structInterval{ intstart;//区间左端点 intend;//区间右端点 }; */ structIntervalWithPos { Intervalin; intpos; IntervalWithPos(Intervali,int
a83610312
·
2013-09-17 21:00
[
各种面试题
] 非二叉树的最大路径和
给定一棵树的根结点,树中每个结点都包含一个整数值val。我们知道树中任意2个结点之间都存在唯一的一条路径,路径值为路径上所有结点值之和。请计算最大的路径值(允许路径为空)。样例:-10 /|\ 234 /\ 5-1 / 6 / -1 最大的路径值为13,相应的路径为5到6之间的路径。 扩展:此题算法也可用来解决另一个非常常见的面试题“树的直径”(求树中任意两结点路径的长度的最大值)。可以认为树中每
a83610312
·
2013-09-17 21:00
[
各种面试题
】任务调度-拓排序
有n个任务需要完成(编号1到n),任务之间有一些依赖关系,如果任务a依赖于任务b和c,那么只有当任务b和任务c完成之后才能完成任务a。给定所有的依赖关系,判断这些任务是否能够完成。如果能够完成,请给出一个合法的任务完成序列。样例:n=51->2,33->4上述样例中任务1依赖于任务2和任务3,任务3依赖于任务4,那么存在合法的任务完成序列4,3,2,1,5读完题就发现是个拓扑排序,直接上模板吧!但
a83610312
·
2013-09-17 20:00
[
各种面试题
] 链表快排
前面写了个链表的归并排序,这里再写个链表的快排。链表的快排处理其实跟数组的没什么区别,只是在partition要三位取中的话稍微烦一点;#include #include #include usingnamespacestd; structListNode { intval; ListNode*next; }; typedefListNodeLN; LN*getLast(LN*head) { L
a83610312
·
2013-09-17 10:00
[
各种面试题
] 链表归并排序
有一个链表,然后请对它进行排序;这里先写了一个归并排序;#include #include #include #include usingnamespacestd; structListNode { intval; ListNode*next; }; intgetLength(ListNode*head); voidmergeSort(ListNode*&head,ListNode*&first
a83610312
·
2013-09-16 21:00
[
各种面试题
] 环形加油站
有一个环形公路上有n个加油站,第i个加油站的油量为ai。假设有一辆邮箱体积无穷大的汽车,初始邮箱是空的,汽车从加油站i行驶到加油站i+1需耗油g[i]。问是否能够选出某个加油站作为起点,使汽车能够绕环形公路行驶一圈返回到该加油站。实现函数intselectGasStation(inta[],intg[],intn),如果存在满足条件的加油站,返回该加油站的序号(0-based)。否则返回-1。提示
a83610312
·
2013-09-16 11:00
[
各种面试题
]用random2实现random6
有一个随机函数random2,随即甩出1或者2;要求给出一个随机函数random6,随即甩出1-6,概率要相等。解法1:可以甩random2三次,然后用0和1表示结果1,2;这样三次之后得到三个bit,每个bit随机为0或者1,因此三个bit可以表示一个数,如果大于6则重复,否则输出;
a83610312
·
2013-09-15 19:00
[
各种面试题
] 困难的数
题目大意:如果一个字符串包含两个相邻的重复子串,则称它是容易的串,其他串称为“困难的串”。例如:BB,ABCDACABCAB吗,ABCDSABCD都是容易的串,而D,DC,ABDAB,CBABCBA都是困难的。voidgetKth(intk,intl) { stringhard; dfs(0,l,hard); } voiddfs(intk,intl,string&hard) { if(k==n)
a83610312
·
2013-09-15 16:00
[
各种面试题
] 拓扑排序、欧拉路径/回路
拓扑排序不用解释了。下面的代码用的是DFS的思路来做,稍微修改也可以用作判断是否有环。intc[N]; inttopo[N],t; booldfs(intu) { c[u]=-1; for(intv=0;v
a83610312
·
2013-09-15 14:00
[
各种面试题
] 重叠的最长子串
重叠的最长子串:题目描述:给定两个字符串,求它们前后重叠的最长子串的长度,比如"abcde"和“cdefg”是"cde",长度为3。输入:输入可能包含多个测试案例。对于每个测试案例只有一行,包含两个字符串。字符串长度不超过1000000,仅包含字符'a'-'z'。输出:对应每个测试案例,输出它们前后重叠的最长子串的长度。样例输入:abcdecdefg样例输出:3 第一反应还是后缀数组,把a跟b串起
a83610312
·
2013-09-03 19:00
think in java interview-高级开发人员面试宝典(二)
从现在开始,以样题的方式一一列出
各种面试题
以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题。
viproc
·
2013-09-03 09:00
[
各种面试题
] 区间和相等的最大区间
今天在CareerCup看到一个Amazon的面试题:Given2binaryarraysAandBi.e.containingonly0sand1seachofsizeN. Findindicesi,jsuchthatSumofelementsfromitojinbotharraysisequalandj-i(i.e.thelengthoftheseti,j)isthemaximumpossib
a83610312
·
2013-08-09 10:00
think in java interview-高级开发人员面试宝典(二)
从现在开始,以样题的方式一一列出
各种面试题
以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题。
king_tt
·
2013-08-05 00:00
interview
think in java interview-高级开发人员面试宝典(二)
从现在开始,以样题的方式一一列出
各种面试题
以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题。
lifetragedy
·
2013-08-05 00:00
think in java interview-高级开发人员面试宝典(二)
从现在开始,以样题的方式一一列出
各种面试题
以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题。
小柒站长
·
2013-08-05 00:00
interview
[
各种面试题
] 打印和为给定数的所有形式
题目:给定一个数N,打印所有和为N的分解形式:如对于N=5:1+1+1+1+11+1+1+2等等。 还算比较好写的,但是第一次写了之后发现有重复的,比如对于N=3,会有1+2和2+1两种形式都出来了。为了去掉重复的可能,递归到每一个子和的时候,只能从比前一个数大的那些数开始取。代码: #include #include #include #include usingnamespacestd
a83610312
·
2013-07-18 22:00
[
各种面试题
]来自陈利人先生微博面试题---出现超过N/3次的查询
题目是有一堆查询,可能有一些查询出现次数超过N/3,希望能找出这些查询词。 思路是:利用三色旗问题的思想把针对某个查询将数组分为3部分,小于,等于,大于,同时也得到前两个区间的右下标分别为small,equal:1.如果equal-small>=n/3,很明显选中的这个查询出现了超过n/3次,否则该词出现次数肯定低于n/3。2.然后我们再检查左右两边的大小是否还不小于n/3,如果是,则在该区间递归
a83610312
·
2013-07-17 11:00
[
各种面试题
] 链表相关
1.判断是否有环boolexistCircle(ListNode*head) { if(!head) returnfalse; ListNode*pSlow=head; ListNode*pFast=head->next; while(pFast!=NULL) { if(pSlow==pFast) returntrue; pSlow=pSlow->next; pFast=pF
a83610312
·
2013-07-16 22:00
[
各种面试题
] 一个不能少:From陈利人先生微博面试题
题目描述:一个不能少:有k个有序的数组,请找到一个最小的数字范围。使得这k个有序数组中,每个数组都至少有一个数字在该范围中。例如:数组1: 4,10,15,24,26;数组2:0,9,12,20;数组3:5,18,22,30。所得最小范围为[20,24],其中,20在2中,22在3中,24在1中。请关注微信公众账号“待字闺中”。 如果在LeetCode上做过MinimumWindowSubstr
a83610312
·
2013-07-16 10:00
程序员编程艺术-----第十五 ~ 二十章-----全排列、跳台阶、奇偶、第一个出现一次字符、一致性hash
引言 最近这几天闲职在家,一忙着投简历,二为准备面试而搜集整理
各种面试题
。
mysileng
·
2013-05-16 16:00
带环单链表求中点
最近一直在无脑敲代码,结果今天下午被一个准备
各种面试题
的同学问了一个带环单链表的问题,发现最近的智商真心不够用,想了稍长时间,最后算是想明白了。
wenph2008
·
2013-04-27 23:00
前端攻略系列
00开光篇01前端各种优化~前端面试有感(2014/3/09上传)02前端
各种面试题
03Javascript设计模式04前端好书推荐05HTML5系列OfflineWebApplication(manifest
Darren_聂微东 - 关注前端技术
·
2013-01-05 08:00
编程艺术第十六~第二十章:全排列/跳台阶/奇偶调序,及一致性Hash算法
引言 最近这几天闲职在家,一忙着投简历,二为准备面试而搜集整理
各种面试题
。
dazhi_100
·
2012-09-13 23:00
各种面试题
资料: 博客、网页、网站、论坛、贴吧
网易博客,何海涛的日志 简介:程序员面试100题等。 http://zhedahht.blog.163.com/blog/#m=0博客园,是一个非常不错的地方,里面有很多解决技术问题的博客,http://www.cnblogs.com/酷勤网,为程序员做点事。http://www.kuqin.com/jingyan/红黑树:http://www.cs.princeton.edu/~rs/talk
zzhays
·
2012-07-12 14:00
【POJ1330】最近公共祖先(LCA):并查集+深搜
最近公共祖先(LCA)问题常见于
各种面试题
中,针对不同情况算法也不尽相同。情况1:二叉树是个二叉查找树,且root和两个节点的值(a,b)已知。如果该二叉树是二叉查找树,那么求解LCA十分简单。
cxllyg
·
2012-06-05 21:04
数据结构及算法
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他