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
面试题精选
程序员
面试题精选
(09)-查找链表中倒数第k个结点
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: struct ListNode { int m_nKey; Lis
wdp107
·
2009-08-15 11:00
编程
面试
程序员
面试题精选
(08)-求1+2+...+n
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。 分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相关技术理解的深刻程度。 通常求1+2+…+n除了用公式n(n+1)/2之外,无外乎循环和递归两种思路。由于已经明确限制
wdp107
·
2009-08-08 21:00
编程
C++
c
面试
C#
程序员
面试题精选
(07)-翻转句子中单词的顺序
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。 分析:由于编写字符串相关代码能够反映程序员的编程能力和编程习惯,与字符串相关的问题一直是程序员笔试、面试题的热门题目。本题也曾多次受到包括微软在内的大量公司的青睐。 由于
wdp107
·
2009-08-08 21:00
编程
C++
c
面试
C#
程序员
面试题精选
(06)-判断整数序列是不是二元查找树的后序遍历结果
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 /
wdp107
·
2009-08-08 21:00
面试
J#
程序员
面试题精选
(05)-查找最小的k个元素
题目:输入n个整数,输出其中最小的k个。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。 分析:这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nlogn)。我们试着寻找更快的解决思路。 我们可以开辟一个长度为k的数组。每次从输入的n个整数中读入一个数。如果数组中已经插入的元素少于k个,
wdp107
·
2009-08-08 21:00
数据结构
面试
程序员
面试题精选
(04)-在二元树中找出和为某一值的所有路径
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。 例如输入整数22和如下二元树 &n
wdp107
·
2009-08-08 21:00
数据结构
C++
c
面试
百度
程序员
面试题精选
(03)-求子数组的最大和
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。 分析:本题最初为2005年浙江大学计算机系的考研题的最后一道程序设计题,在2006年
wdp107
·
2009-08-08 21:00
面试
Google
程序员
面试题精选
(02)-设计包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。 分析:这是去年google的一道面试题。 我看到这道题目时,第一反应就是每次push一个新元素时,将栈里所有逆序元素排序。这样栈顶元素将是最小元素。但由于不能保证最后push进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈了。 在栈里添加一个成员变量存放最
wdp107
·
2009-08-08 21:00
数据结构
工作
面试
Google
程序员
面试题精选
(01)-把二元查找树转变成排序的双向链表
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 比如将二元查找树  
wdp107
·
2009-08-08 20:00
数据结构
C++
c
面试
C#
面试题精选
(84):使序列有序的最少交换次数(minimum swaps) + 删除序列中所有重复的元素
题目描述:(minimumswaps)Givenasequence,wehavetofindtheminimumnoofswapsrequiredtosortthesequence. 分析:formula: no.ofelementsoutofplace - "cycles"inthesequence Acycleisasetofelements,eachofwhichisintheplaceof
yysdsyl
·
2009-06-30 20:00
Algorithm
面试
delete
System
Numbers
Duplicates
面试题精选
(83):二叉树相关的问题
涉及题目描述:(BST—binarysearchtree,BT—binarytree)1、BST构建2、BT的层次遍历3、BST的LCA(最近公共祖先)求解4、BST转化为有序的doublelinklist5、BT的LCA求解(将LCA问题转化为RMQ(上一篇blog涉及)问题求解) 相关分析: 1、2问题简单,不予分析 3、对于BST,它有一个重要的性质:节点的左子树包含且只包含比它小的节点,右
yysdsyl
·
2009-06-28 23:00
面试
tree
null
search
insert
output
面试题精选
(82):找出数组中只出现一次的3个数
题目描述:Givenanarrayofnintegers,suchthateachnumberinthearrayappearsexactlytwice,exceptforthreenumbers(saya,bandc)whichappearexactlyonce.InO(n)timeandO(1)spacefinda,bandc. 分析:先看这样一道题:n个数中有且仅有一个数出现了奇数次(其它
yysdsyl
·
2009-06-22 20:00
Algorithm
c
面试
System
each
Numbers
面试题精选
(81):两道按照要求重排数组问题
题目1描述:youaregivenanarrayofintegerscontainingonly0sand1s.youhavetoplaceallthe0sinevenpositionand1sinoddpositionandifsupposenoif0sexceedno.of1sorviceversathenkeepthemuntouched.DothatinONEPASSandWITHOUTt
yysdsyl
·
2009-06-20 20:00
面试
System
output
联想
面试题精选
(80):设计含min函数的栈的另解
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。 分析: 下面给出的链接是之前使用双倍空间2*n来实现的http://blog.csdn.net/yysdsyl/archive/2007/10/24/1841644.aspx 其实,辅助栈的使用可以进一步优化,做到worst-case下使用n空间,从而更大程度上节省空
yysdsyl
·
2009-06-19 19:00
数据结构
优化
面试
Class
面试题精选
(79):取值为【1,n-1】含n个元素的整数数组至少存在一个重复数,O(n)时间内找出其中任意一个重复数
题目描述:Youhavearead-onlyarrayA[1..n]whichispopulatedbynumbersfrom1..n-1,whichimpliesatleastonerepetition.However,therecanbemore.Findanyonerepeatednumberinlineartime O(n) usingconstantspace. 思路分析:1、如果数组中
yysdsyl
·
2009-06-15 21:00
面试
System
Numbers
面试题精选
(78):输出两有序数组和的前k项(O(klgk)复杂度)
题目描述:LetAandBaresortedarraywithlengthmandnrespectively,givenk,theproblemistofindthefirstksmallestelementswhicharecomposedofA[i]+B[j].e.g.A={1,3,5,7},B={2,6,10},k=3 Output:1+23+21+6 分析:不晓得有没有时间复杂度更小的算法
yysdsyl
·
2009-06-14 23:00
算法
面试
less
System
output
面试题精选
(77):两有序数组的中位数求解
题目描述:LetX[1..n]andY[1..n]betwoarrays,eachcontainingnnumbersalreadyinsortedorder.GiveanO(lgn)-timealgorithmtofindthemedianofall2nelementsinarraysXandY. 题目是《算法导论》上的一道习题,不过已多次出现在面试题当中 算法导论给出的分析:(针对长度相等的两
yysdsyl
·
2009-06-13 16:00
Algorithm
算法
面试
System
Arrays
Numbers
面试题精选
(76):给定BST先序遍历序列,不构造BST的情况下判断BST是否每个node都只有一个child
题目描述:Input: Youhavebeengivenasequenceofintegers. NowwithoutactuallyconstructingBSTfromthegivensequenceofintegers(assumingthesequenceispre-order)determineifeachnodeofBSThassinglechild(e
yysdsyl
·
2009-06-12 12:00
面试
tree
Integer
System
each
output
面试题精选
(75):经过旋转的有序数组中的元素查找(要求复杂度为O(lgn))
题目描述:AnelementinasortedarraycanbefoundinO(logn)timeviabinarysearch.ButsupposeIrotatethesortedarrayatsomepivotunknowntoyoubeforehand.Soforinstance,12345mightbecome34512.Nowdeviseawaytofindanelementinth
yysdsyl
·
2009-06-11 19:00
面试
PIVOT
面试题精选
(74):n个数连接得到最小或最大的多位整数(百度笔试题)
题目描述:设有n个正整数,将它们联接成一排,组成一个最小的多位整数。程序输入:n个数程序输出:联接成的多位数 例如:n=2时,2个整数32,321连接成的最小整数为:32132,n=4时,4个整数55,31,312,33联接成的最小整数为:312313355[题目要求]1.给出伪代码即可,请给出对应的文字说明,并使用上面给出的例子试验你的算法。2.给出算法的时间空间复杂度。3.证明你的算法。(非常
yysdsyl
·
2009-06-06 23:00
面试
String
百度
iterator
iostream
Numbers
面试题精选
(73):求内积最大的字数组
据说这是一道Google的面试题。在网上看到有些人在讨论这道题目,但能给出正确算法的人并不多。问题描述:有两个长度均为n的整数数组A和B,现在要从这两个数组中各抽出s个数字,分别构成两个新的数组C和D,要求数组C和D的内积最大。即已知:A=[a1,a2,...,an],B=[b1,b2,...,bn];求:C=[c1,c2,...,c5],D=[d1,d2,...,d5];满足:c1,...,c5
yysdsyl
·
2009-05-30 15:00
c
exception
算法
面试
Google
存储
面试题精选
(72):设计含min函数的队列
思路:暂时没有想出完美的解法,但思路可参见“程序员
面试题精选
(2):设计包含min函数的栈”http://blog.csdn.net/yysdsyl/archive/2007/10/24/1841644
yysdsyl
·
2009-05-28 21:00
面试
面试题精选
(71):倒水倒油类算法
题目描述:一个桶中有12斤油,要求倒出6斤,可现在另外只有两个桶,分别可装8斤与5斤,请问应如何来倒? 思路:广度优先搜索 c#代码: privatevoidbutton5_Click(objectsender,EventArgse) { //初始状态和结束状态 int[]begin=newint[]{12,0,0};
yysdsyl
·
2009-05-27 22:00
面试题精选
(70):100人民币问题
题目描述:用1元,2元,5元,10元,20元和50元的纸币组成100元,共有多少种情况。要求输出总方案数和每种方案中各纸币的个数。 ////////////////////////////4562种 代码:背包解法: #includeusingnamespacestd;#defineN6intw[N];intnumber_used[N];//boolis_used[N];intcountnum=0
yysdsyl
·
2009-05-25 20:00
面试题精选
(69):求最大重叠区间大小
题目描述:请编写程序,找出下面“输入数据及格式”中所描述的输入数据文件中最大重叠区间的大小。对一个正整数n,如果n在数据文件中某行的两个正整数(假设为A和B)之间,即A=n>=B,则n属于该行;如果n同时属于行i和j,则i和j有重叠区间;重叠区间的大小是同时属于行i和j的整数个数。例如,行(1020)和(1225)的重叠区间为[1220],其大小为9,行(2010)和(2030)的重叠区间大小为1
yysdsyl
·
2009-05-25 19:00
面试
面试题精选
(68):计数排序的原地排序
问题描述 假设n个记录中每一个的关键字都界于1到k之间。说明如何修改计数排序,使得可以在O(n+k)时间内对n个记录原地排序。除输入数组外,可以另用O(k)的存储空间。你给出的算法是稳定的吗? 算法思想 修改基本的计数排序算法,实现原地排序。由于不再使用辅助空间来存放排序结果,因此只能通过对原数组的元素进行置换,以完成排序。由于是使用置换完成排序,因此算法不再是稳定的。 比起原计数
yysdsyl
·
2009-05-23 16:00
c
算法
面试
delete
存储
面试题精选
(67):1.。。。n中'1'出现的次数
【问题描述】(1)对于一个整数n,写一个函数f(n),使得它返回1到n之间的所有自然数(十进制数表示)中出现的‘1’的次数。例如,对于n=13,自然数1,2,3,4,5,6,7,8,9,10,11,12,13中‘1’出现的次数为6,所以f(13)=6。(2)找出满足f(n)=n的最大n值。【问题分析】这个问题在《编程之美》中有所讨论,虽然最终给出了正确答案,但解答过程并不严谨。另外,对于第二个问题
yysdsyl
·
2009-05-23 15:00
编程
算法
面试
面试题精选
(66):整数的素数和分解问题
【问题描述】歌德巴赫猜想说任何一个不小于6的偶数都可以分解为两个奇素数之和。对此问题扩展,如果一个整数能够表示成两个或多个素数之和,则得到一个素数和分解式。对于一个给定的整数,输出所有这种素数和分解式。注意,对于同构的分解只输出一次(比如5只有一个分解2+3,而3+2是2+3的同构分解式)。例如,对于整数8,可以作为如下三种分解:(1)8=2+2+2+2(2)8=2+3+3(3)8=3+5【算法分
yysdsyl
·
2009-05-23 15:00
c
算法
面试
测试
扩展
Numbers
求圆圈中最后剩下的数字
程序员
面试题精选
(14)-圆圈中最后剩下的数字题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。
adcxf
·
2008-10-14 00:00
数据结构
list
Integer
iterator
input
output
在排序数组中查找和为给定值的两个数字
程序员
面试题精选
(10)-在排序数组中查找和为给定值的两个数字题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。
adcxf
·
2008-10-12 23:00
面试
less
input
扩展
output
Numbers
求二元查找树的镜像
程序员
面试题精选
(11)-求二元查找树的镜像题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。
adcxf
·
2008-10-12 23:00
获取第一个只出现一次的字符
程序员
面试题精选
(13)-第一个只出现一次的字符题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。分析:这道题是2006年google的一道笔试题。
adcxf
·
2008-10-12 23:00
查找链表中倒数第k个结点
程序员
面试题精选
(09)-查找链表中倒数第k个结点题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
adcxf
·
2008-10-09 09:00
翻转句子中单词的顺序
程序员
面试题精选
(07)-翻转句子中单词的顺序题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
adcxf
·
2008-10-06 22:00
编程
面试
String
null
input
微软
判断整数序列是不是二元查找树的后序遍历结果
程序员
面试题精选
(06)-判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。
adcxf
·
2008-10-05 16:00
在二叉树中找出和为某一值的所有路径
程序员
面试题精选
(04)-在二元树中找出和为某一值的所有路径题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
adcxf
·
2008-10-02 21:00
数据结构
struct
tree
delete
iterator
Path
求子数组的最大和
程序员
面试题精选
(03)-求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。
adcxf
·
2008-09-29 22:00
设计包含min函数的栈
程序员
面试题精选
(02)-设计包含min函数的栈题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。
adcxf
·
2008-09-28 13:00
数据结构
工作
面试
Google
Class
insert
把二元查找树转变成排序的双向链表
程序员
面试题精选
(01)-把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。
adcxf
·
2008-09-27 20:00
JAVA
面试题精选
·Stirng 和StringBuffer的区别?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> StringBuffer可以对字符串进行动态的改变,比如append(追加),insert(插入)操作,而Stirng提供了不可变的字符串
鬼眼小菜刀
·
2008-08-24 19:00
java
多线程
应用服务器
面试
ejb
JAVA
面试题精选
·Stirng 和StringBuffer的区别?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> StringBuffer可以对字符串进行动态的改变,比如append(追加),insert(插入)操作,而Stirng提供了不可变的字符串
鬼眼小菜刀
·
2008-08-24 19:00
java
多线程
应用服务器
面试
ejb
程序员
面试题精选
(48):两个堆栈模拟队列c++代码实现
代码如下:#includeusingnamespacestd;classZStackQueue{public: classZStack { public: ZStack(intsize); ~ZStack(); intPop(); voidPush(inte); boolEmpty(){returntop==0;}
yysdsyl
·
2007-12-07 21:00
C++
面试
delete
Class
iostream
程序员
面试题精选
(47):两个或N个数的最大公约数和最小公倍数的求解
代码实现如下:#includeusingnamespacestd;intGetG(intm,intn){ if(m
yysdsyl
·
2007-12-07 21:00
c
面试
ini
iostream
程序员
面试题精选
(46):矩阵式螺旋输出
题目描述:如上图式的输出矩阵。代码如下:#includevoidMatrixSpiralOutput(intn){ int**matrix=newint*[n](); for(intidx=0;idx=circle;row--) matrix[row][col]=++i; row++; col--; for(;col>circle;c
yysdsyl
·
2007-12-07 19:00
程序员
面试题精选
(45):求给定整数其二进制形式含1的个数
题目描述:求给定整数其二进制形式含1的个数,比如255含8个1,因其二进制表示为11111111;下面给出了两种求解代码实现。#includeusingnamespacestd;int CountOne(int n){ int count = 0; while (n) { ++count; n &= n - 1; } return count;}int CountOnesU
yysdsyl
·
2007-12-06 21:00
程序员
面试题精选
(44):整数分割(即求一个数N由小于等于N的数相加所得的所有组合)
题目描述:比如给定一整数4,其有如下情况:4=4; 4=3+1; 4=2+2;
yysdsyl
·
2007-12-06 21:00
面试
delete
程序员
面试题精选
(43):数组中连续元素相加和最小的元素序列
题目描述: 有一个集合{14,56,53,4,-9,34,...n}里面共n个数 里面可以有负数也可以没有 用一个时间复杂度为o(n)的算法找出其中的一个连续串象(53,4,-9) 这样(串里的数字个数任意) 使得这个连续串为所有这样连续串里各个数字相加和最小的一个 代码实现如下(程序没有考虑有多组解的情况)#includeusingnamespacestd;templateintgetM
yysdsyl
·
2007-12-05 21:00
程序员
面试题精选
(42):约瑟夫问题的数学方法
问题描述:N个人围成圆圈,从1开始报数,到第M个人令其出列,然后下一个人继续从1开始报数,到第M个人令其出列,如此下去,直到只剩一个人为止。显示最后一个人为剩者。无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办法在短时间内出结果的。为了讨论方便,先把问题稍微改变一下,并不影
yysdsyl
·
2007-12-05 20:00
游戏
算法
面试
include
程序员
面试题精选
(41):编译器对内存填充长度之误解
看了《C++对像模型》的人,往往会误以为编译器填充是按照计算机字长填充的,如下:classA{ doublea; charb;};sizeof(A)==? 不了解填充的人会以为是9,看了c++对象模型的(像我)往往会以为是12,昨晚看《程序员面试宝典》一道类似题,开始以为答案给错了。。今天一试才知道,原来我错了。。上题答案(在编译器默认情况下)是16,VC6.0、MinGW、VS.net均
yysdsyl
·
2007-11-14 21:00
程序员
面试题精选
(40):一道SPSS笔试题求解
/*================================================================================题目:输入四个点的坐标,求证四个点是不是一个矩形关键点:1.相邻两边斜率之积等于-1,2.矩形边与坐标系平行的情况下,斜率无穷大不能用积判断。3.输入四点可能不按顺序,需要对四点排序作者:sunnyrain日期:2007.9.2&200
yysdsyl
·
2007-11-14 21:00
面试
Class
input
UP
vc++
float
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
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
其他