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
面试100题
微软公司等数据结构+算法
面试100题
-第1题
1.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 /\ /\4 8 1216转换成双向链表4=6=8=10=12=14=16。看到这题,想到一个动画,最后要得到的双向链表无非是要将这棵二叉树串成有序的一串。从二维变成一维。 相像一个从树的叶结点一层层向上一层
huxian370
·
2012-11-21 15:00
数据结构
算法
面试
微软
微软公司等数据结构+算法
面试100题
-63题解
微软公司等数据结构+算法
面试100题
(第1-100题)63.在字符串中删除特定的字符(字符串)。题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
huxian370
·
2012-11-21 09:00
数据结构
算法
面试
iostream
微软
微软
面试100题
之三 求子数组的最大和
http://blog.csdn.net/v_JULY_v/article/details/61264063.求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1,-2,3,10,-4,7,2,-5,和最大的子数组为3,10,-4,7,2,因此输出为该子数
miao6664659
·
2012-11-15 08:00
微软
面试100题
之二 设计包含min函数的栈。
http://blog.csdn.net/v_JULY_v/article/details/61264062.设计包含min函数的栈。定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。结合链表一起做。首先我做插入以下数字:10,7,3,3,8,5,2,60:10->NULL(MIN=10,POS=0)1:7->[0](MIN
miao6664659
·
2012-11-14 15:00
Bookmarks
、算法http://duanple.blog.163.com/blog/#m=0赵劼博客,C#与Java语言http://blog.zhaojie.meJuly博客“结构之法,算法之道”,代表作”算法
面试
ak913
·
2012-11-12 18:00
面试100题
:7.判断两个链表是否相交
题目:给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。分析:之前一直没有搞清楚的问题,今天看了如下链接才终于有了清晰的认识,一个字就是笨,俩字很笨,三字非常笨。参考:http://blog.163.com/bbluesnow@126/blog/static/27784545201251051156817/。特此感谢!!!先要搞清楚如下几个问
gocode
·
2012-11-12 15:00
面试100题
:6.求上排数字在下排出现的次数
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:腾讯面试题--给你10分钟时间,根据上排给出十个数,求在其下排填出对应的十个数,要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】初看此题
gocode
·
2012-11-06 17:00
全排列算法及其C++实现
分析:此题最初整理于去年的微软
面试100题
中第53题,第二次整理于微软、Google等公司非常好的面试题及解答[第61-70题] 第67题。无独有偶,这个问题今年又出现于今年的2011.
mysileng
·
2012-11-05 21:00
面试100题
:5.查找最小的k个元素
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7,8和4这几个数字,则最小的4个数字为1,2,3和4。解一:/*Title: 5.求n个数中最小的k个:解一 Author: goco
gocode
·
2012-11-05 12:00
面试100题
:4.在二元树中找出和为某一值的所有路径
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树 10 / \ 5
gocode
·
2012-11-02 16:00
面试100题
:3.求子数组的最大和
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1,-2,3,10,-4,7,2
gocode
·
2012-11-02 16:00
面试100题
:2.设计包含min函数的栈
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。结合链表一起做。提示:结合链表一起做。分析:要想求得复杂度是O(1)的算法,基本
gocode
·
2012-11-02 00:00
面试100题
:1.把二元查找树转变成排序的双向链表
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4
gocode
·
2012-10-23 18:00
微软
面试100题
2010年版全部答案集锦(含下载地址)
转自:http://blog.csdn.net/v_july_v/article/details/6870251 微软等数据结构+算法
面试100题
全部答案集锦作者:July、阿财。
volcan1987
·
2012-10-18 11:00
面试100题
之我的解答
利用static变量,两个变量必须都为static,因为它们的状态需要记住#include #include #include #include usingnamespacestd; structNode { Node(inti=0,Node*pLeft=NULL,Node*pRight=NULL):data(i),left(pLeft),right(pRight){} intdata; No
alexingcool
·
2012-10-06 22:00
程序员
面试100题
之十六:二叉树中两个节点的最近公共父节点
这个问题可以分为三种情况来考虑:情况一:root未知,但是每个节点都有parent指针此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个方法很简单,不需要详细解释的。情况二:节点只有左、右指针,没有parent指针,root已知思路:有两种情况,一是要找的这两个节点(a,b),在要遍历的节点(root)的两侧,那么这个节点就是这两个节点的
hackbuteer1
·
2012-09-26 19:53
剑指Offer
程序员
面试100题
之十六:二叉树中两个节点的最近公共父节点
这个问题可以分为三种情况来考虑:情况一:root未知,但是每个节点都有parent指针此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点,这个方法很简单,不需要详细解释的。情况二:节点只有左、右指针,没有parent指针,root已知思路:有两种情况,一是要找的这两个节点(a,b),在要遍历的节点(root)的两侧,那么这个节点就是这两个节点的
Hackbuteer1
·
2012-09-26 19:00
面试
struct
null
[转]程序员编程艺术第一~十章集锦与总结(教你如何编程)--持续更新中
这是本人的第4大原创作品,不过与之前微软
面试100题
系列,红黑树系列,及
zongquanliu
·
2012-09-17 11:16
编程
微软等
面试100题
答案V0.3版[第21-40题答案]
转自:v_JULY_v第21题2010年中兴面试题编程求解:输入两个整数n和m,从数列1,2,3.......n中随意取几个数,使其和等于m,要求将其中所有的可能组合列出来.//此题与第14题差不多,在次不做过多解释。//July、本程序,经网友指出有误,但暂时没有想到解决的办法。见谅。2010/10/22。 updated:第20题首次勘误,请参见第749、750、751楼(已经测试正确,后
dazhi_100
·
2012-09-13 23:00
微软等
面试100题
答案V0.2版[第1-20题答案]
1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 // 6 14////4 81216 转换成双向链表4=6=8=10=12=14=16。首先我们定义的二元查找树节点的数据结构如下:structBSTreeNode{ intm_nValue;//valueofnode BSTreeNode
dazhi_100
·
2012-09-13 23:00
数据结构
面试
null
Path
微软
traversal
微软等数据结构与算法
面试100题
第二十一题
第二十一题题目:输入两个整数n和m,从数列1,2,3.......n中随意取几个数,使其和等于m,要求将其中所有的可能组合列出来.分析:本题目主要考察的是动态规划知识点。和最长公共子序列题目比较相似,递归方程为 /sumk(m-n,n-1)sumk(m,n)= \sum(m,n-1)与最长公共子序列不同的是题目要求输出
daxiamit
·
2012-09-08 00:00
数据结构
算法
面试
list
iterator
微软
全排列问题
分析:此题最初整理于去年的微软
面试100题
中第53题,第二次整理于微软、Google等公司非常好的面试题及解答[第61-70题] 第67题。
zz198808
·
2012-09-07 23:00
面试
Google
百度
System
微软
permutation
【微软谷歌
面试100题
--【54】调整数组顺序使奇数位于偶数前面
题54调整数组顺序使奇数位于偶数前面。题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。publicclassAlgorithm54_0{ publicstaticvoidmain(String[]args){ inta[]={7,8,2,4,59,6,1,45,52}; inti=0,j=a.length-1;
qitian0008
·
2012-09-05 21:00
Algorithm
String
面试
Class
微软
【微软谷歌
面试100题
--【46】N对括号可以有多少种匹配排列方式
题46N对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())主要的思想还是递归!#include"stdafx.h" #include //#include #include usingnamespacestd; voidPrint(vectorv) { for(vector::iteratorbeg=v.begin();beg!=v.end();++beg) cout&v)
qitian0008
·
2012-09-05 21:00
面试
vector
iterator
微软
微软、谷歌、百度等公司经典
面试100题
[第1-60题]及解答
下面是自己做的一些面试题解答,均运行通过,但是时间效率不一定最佳。 为了以后方便自己先写了个计时类和一个打印数组的函数//使用方法:CLOCK{//计时代码}classClock { public: Clock() { startTime=GetTickCount(); isValid=true; cout=length) return; for(inti=begin;i
ruoxing_zpc
·
2012-09-05 10:00
面试
百度
Class
微软
精选微软等公司数据结构+算法
面试100题
带答案(86-90)
86、怎样编写一个程序,把一个有序整数数组放到二叉树中?分析:本题考察二叉搜索树的建树方法,简单的递归结构。关于树的算法设计一定要联想到递归,因为树本身就是递归的定义。而学会把递归改称非递归也是一种必要的技术。毕竟,递归会造成栈溢出,关于系统底层的程序中不到非不得以最好不要用。但是对某些数学问题,就一定要学会用递归去解决。structBTree{intdata;BTree*left;BTree*r
dazhong159
·
2012-09-03 15:33
数据结构与算法
精选微软等公司数据结构+算法
面试100题
带答案(86-90)
86、怎样编写一个程序,把一个有序整数数组放到二叉树中? 分析:本题考察二叉搜索树的建树方法,简单的递归结构。关于树的算法设计一定要联想到递归,因为树本身就是递归的定义。而学会把递归改称非递归也是一种必要的技术。毕竟,递归会造成栈溢出,关于系统底层的程序中不到非不得以最好不要用。但是对某些数学问题,就一定要学会用递归去解决。structBTree { intdata; BTree*lef
dazhong159
·
2012-09-03 15:00
数据结构
算法
面试
tree
华为
微软
精选微软等公司数据结构+算法
面试100题
带答案(81-85)
81、第1组百度面试题1)一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。 分析:有题目知,因为满足条件的a[i],其左边所有的数都小于等于它,右边所有的数都大于等于它,所以该数在数组中相当于已经排好序了。所以我们只需要将排好序的数组与原始数组相比,同一下标对应元素值相同的元素即为所求
dazhong159
·
2012-09-03 10:00
数据结构
算法
面试
url
query
微软
微软等数据结构与算法
面试100题
第二十题
第二十题题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。分析:这道题主要要考虑全面即可,比如“-213”,“+234”,“-pox”,“123”分别输出为-213,234,错误,123代码:#include usingnamespacestd; intchar2int(char*b,intlength) { intstartIndex=0; intPosiNeg; if(b[0]==
daxiamit
·
2012-09-01 22:00
数据结构
算法
面试
微软
微软等数据结构与算法
面试100题
第十九题
第十九题题目:定义Fibonacci数列如下: /0n=0f(n) =1n=1 \= f(n-1)+f(n-2)n=2输入n,用最快的方法求该数列的第n项。分析:对于解决斐波那契数列问题,目前主要有三类方法:1,递归方法;复杂度应该是指数的。2,非递归的方法,应该可以叫做动态规划方法。由于存在大量的重复解的问题,因此可以使用动态规划方法。复杂度为o(n)3,化简成矩
daxiamit
·
2012-09-01 19:00
微软等数据结构与算法
面试100题
第十八题
第十八题题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。分析:这道题有很多解法,http://blog.csdn.net/v_july_v/article/details/6870251给出了目前最快的算
daxiamit
·
2012-09-01 16:00
微软
面试100题
—自做
由于发现题集具有很好的借鉴效果,整个题目乃至答案如下:http://blog.csdn.net/v_JULY_v/article/details/60572861.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 // 6 14 ////4 81216 转换成双向链表4=6=8=10=12
anlou
·
2012-08-31 20:00
精选微软等公司数据结构+算法
面试100题
带答案(41-60)
41、求固晶机的晶元查找程序。晶元盘由数目不详的大小一样的晶元组成,晶元并不一定全布满晶元盘,照相机每次这能匹配一个晶元,如匹配过,则拾取该晶元,若匹配不过,照相机则按测好的晶元间距移到下一个位置。求遍历晶元盘的算法求思路。(不懂)42、两个非降序链表的并集,1->2->3和2->3->5并为1->2->3->5。另外只能输出结果,不能修改两个链表的数据。思路:只用输出结果,并不需要用链表将元素链
dazhong159
·
2012-08-30 17:32
面试
算法
数据结构
微软
null
class
数据结构与算法
精选微软等公司数据结构+算法
面试100题
带答案(41-60)
41、求固晶机的晶元查找程序。晶元盘由数目不详的大小一样的晶元组成,晶元并不一定全布满晶元盘,照相机每次这能匹配一个晶元,如匹配过,则拾取该晶元,若匹配不过,照相机则按测好的晶元间距移到下一个位置。求遍历晶元盘的算法求思路。(不懂)42、两个非降序链表的并集,1->2->3和2->3->5并为1->2->3->5。另外只能输出结果,不能修改两个链表的数据。思路:只用输出结果,并不需要用链表将元素链
dazhong159
·
2012-08-30 17:00
数据结构
算法
面试
null
Class
微软
微软等数据结构与算法
面试100题
第十七题
第十七题题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。分析:这道题比较简单,其实和哈希表的原理差不多,就是创建一个表,储存每个字符出现的次数,然后遍历这个表直到找到第一次出现的一次的那个字符。关于哈希表的大小,因为ASCII表的大小是255,因此数组的长度为255。代码其实很简单,参考了链接:http://www.douban.com/note/2052565
daxiamit
·
2012-08-29 10:00
微软等数据结构与算法
面试100题
第十六题
第十六题题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。分析:这道题主要考察的是二叉树的广度优先周游,比较简单。就是使用队列(queue)作为辅助实现。#include #include usingnamespacestd; structnode { node*nodeLeft; node*nodeRight; intvalue; }; voidlevelO
daxiamit
·
2012-08-29 09:00
数据结构
算法
面试
struct
null
微软
微软等数据结构与算法
面试100题
第十五题
第十五题题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。分析:题目要求求解一个二元搜索树的镜像,用两种方法实现,递归和非递归。首先,对于求解一个二元搜索树镜像其实就是把树中的每个节点的左右子树调换了即可,因此思路就是周游一个树的所有节点,对于每个节点其左右子树对调。周游一个树主要有两种方法,深度优先的周
daxiamit
·
2012-08-28 15:00
数据结构
算法
面试
struct
null
微软
精选微软等公司数据结构+算法
面试100题
带答案(1-10)
1、输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/\614/\/\481216转换成双向链表:4=6=8=10=12=14=16。#include#include"stdafx.h"//数据结构structBSTreeNode{intm_nValue;BSTreeNode*m_pLeft;BSTreeNode*m_pRight;};/
dazhong159
·
2012-08-28 12:57
数据结构与算法
精选微软等公司数据结构+算法
面试100题
带答案(1-10)
1、输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。10/\614/\/\481216转换成双向链表:4=6=8=10=12=14=16。#include #include"stdafx.h" //数据结构 structBSTreeNode { intm_nValue; BSTreeNode*m_pLeft; BSTreeN
dazhong159
·
2012-08-28 12:00
精选微软等公司数据结构+算法
面试100题
带答案(11-30)
11、如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。 思路:求树的高度。参考:http://blog.csdn.net/dazhong159/article/details/786277412、题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switc
dazhong159
·
2012-08-28 10:00
【微软谷歌
面试100题
--【45】一个整数数组,长度为n,将其分为m 份,使各份的和相等,求m 的最大值
第45题一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值比如:{3,2,4,3,6}可以分成:{3,2,4,3,6}m=1;{3,6}{2,4,3}m=2{3,3}{2,4}{6}m=3所以m的最大值为3既然是各份的和相等,首先让我们想到的是,先对这个数组求和,然后去求解一个分组的个数问题。然后定义变量i=length(数组长度),i>0,i--,去寻找满足的最大的iimport
qitian0008
·
2012-08-21 09:03
笔试
【微软谷歌
面试100题
--【45】一个整数数组,长度为n,将其分为m 份,使各份的和相等,求m 的最大值
第45题一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值比如:{3,2,4,3,6}可以分成:{3,2,4,3,6}m=1;{3,6}{2,4,3} m=2{3,3}{2,4}{6} m=3所以m的最大值为3既然是各份的和相等,首先让我们想到的是,先对这个数组求和,然后去求解一个分组的个数问题。然后定义变量i=length(数组长度),i>0,i--,去寻找满足的最
qitian0008
·
2012-08-21 09:00
Algorithm
String
面试
Class
微软
全新整理:微软、Google等公司非常好的面试题及解答、第161-170题
------------------------------- 引言 此微软100题V0.2版的前60题,请见这:微软、谷歌、百度等公司经典
面试100题
[第1-60题]。
zhangfei2018
·
2012-08-20 14:00
微软、谷歌、百度等公司经典
面试100题
[第101-160题]
全新整理:微软、谷歌、百度等公司经典
面试100题
[第101-160题]整理:July、二零一一年三月九日。应网友承诺与要求,全新整理。转载,请注明出处。
zhangfei2018
·
2012-08-20 14:00
C语言实现全排列算法
分析:此题最初整理于去年的微软
面试100题
中第53题,第二次整理于微软、Google等公司非常好的面试题及解答[第61-70
fanzitao
·
2012-08-17 20:30
笔试面试题
C语言实现全排列算法
分析:此题最初整理于去年的微软
面试100题
中第53题,第二次整理于微软、Google等公司非常好的面试题及解答[第61-
fanzitao
·
2012-08-17 20:00
c
算法
面试
语言
微软
permutation
微软等数据结构与算法
面试100题
第十题
第十题翻转句子中单词的顺序。题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“Iamastudent.”,则输出“student.aamI”。分析:可以根据空格符将单词分开,然后针对每个单词进行操作,string类型的有很多库函数,比如可以实现分割string类型的字符串。这里使用c++实现,本来是想使用
夏天下雨
·
2012-08-17 16:05
程序员
面试100题
(算法)之找出数组中两个只出现一次的数字(位运算实现)
//程序员
面试100题
(算法)之找出数组中两个只出现一次的数字 #include"stdafx.h" #include usingnamespacestd; boolIs1(intdata,unsignedintlocation
shichexixi
·
2012-08-17 15:00
程序员
面试100题
(算法)之找出数组中两个只出现一次的数字(位运算实现)
// 程序员
面试100题
(算法)之找出数组中两个只出现一次的数字 #include "stdafx.h" #include<iostream> using
v5qqbrowser
·
2012-08-17 15:00
程序员
程序员
面试100题
(算法)之递归逆序打印单链表、字符串(同时求字符串长度)
(一)递归逆序打印单链表voidPrintReverseLink(LinkNode*headNode) { if(NULL==headNode) return; PrintReverseLink(headNode->next); coutvalue<<""; }(二)递归逆序打印字符串,同时求字符串长度voidPrintReverseStr(char*str,int&length) { if(N
shichexixi
·
2012-08-17 14:00
算法
面试
null
上一页
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
其他