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题
2010年版全部答案集锦(含下载地址)
转自:http://blog.csdn.net/v_july_v/article/details/6870251作者:July出自:结构之法算法之道blog微软等数据结构+算法
面试100题
全部答案集锦作者
lucky_greenegg
·
2013-05-12 21:00
数据结构
算法
面试
2010微软公司等数据结构+算法
面试100题
(第1-100题)全部出炉
转自:http://blog.csdn.net/v_JULY_v/article/details/6057286作者:July出自:结构之法算法之道blog微软等公司数据结构+算法
面试100题
(第1-100
lucky_greenegg
·
2013-05-12 21:00
数据结构
算法
面试
微软
面试100题
系列-第2题
注:微软
面试100题
系列中的题都是v_JULY_v(http://blog.csdn.net/v_JULY_v)收集的面试题,具体PDF下载地址为:http://download.csdn.net
v_JULY_v
·
2013-05-10 11:00
C++
微软面试100题系列
最小值栈
面试100题
系列之16判断序列是不是Pop序列
1、给定两个序列,判断其中一个有没有可能是另一个序列的出栈序列。比如说给定入栈序列为{1,2,3,4,5},出栈序列为{4,5,3,2,1},那后者就是前者的出栈序列。具体步骤是什么呢?出栈操作每次只能出栈顶元素,所以用一个辅助栈来模拟这个出栈操作就可以了。一个元素需要出栈要么是马上要进栈的元素,要么是当前栈顶的元素。如果两者都不是,那就在入栈序列中找到这个元素,然后将这个元素以前的所有元素入栈。
kay_zhyu
·
2013-05-03 12:00
面试100题
系列之15将字符串转换成数
1、输入一个字符串,将其转换成整数。注意,这里没说是正整数,所以需要考虑负数的情况。没什么技巧,直接算就可以了。只要考虑到负数就OK了,当然处理技巧也很重要。核心代码如下://字符串转换成整数 intStrToInt(char*str) { if(!str) return-Inf; intnLen=strlen(str); inti=0; intans=0; boolIsNag=false; if
kay_zhyu
·
2013-05-03 10:00
面试100题
系列之14从1到n中随意取几个数,使其和为m
1、题目描述:输入两个整数n和m,从数列1,2,3.......n中随意取几个数,这里同一个数不能重复取,使其和等于m,要求将其中所有的可能组合列出来。解题思路:典型的0-1背包问题,每一个数字都有两种状态,取或者不取。最简单的就是用递归求解。这里的遍历顺序是从n到1,这样比较好判断递归的出口,当然也比较方便剪枝。核心代码如下,有没有觉得很漂亮://找到1~Num中和等于Sum的所有组合 voi
kay_zhyu
·
2013-05-03 10:00
面试100题
系列之13大数的四则运算
关于大数的四则运算,我想网上有很多方法,感觉通用性不强,然后呢,功能不强大,效率不高~~问题多多啊~然后呢,大数这个东西又经常碰到,所以呢,我一咬牙,写了一个比较完整的,花了我一下午的时间啊,不过除法还没有写,有时间再写吧。最近事情太多了,写了之后再补上。OK,说一下我的思路。首先这里用字符串存数据,这个地球人都知道。第0位是高位。当我们算加减的时候需要从低位开始算起。所以我一开始的思路是将字符串
kay_zhyu
·
2013-05-02 18:00
编程之美系列之求子数组的最大乘积
具体的看另外一篇博客:
面试100题
kay_zhyu
·
2013-05-02 11:00
面试100题
系列之11在树中找到符合条件的路径
在二元树中找出和为某一值的所有路径(树),满足一下要求:*该路径是从树的根节点到叶节点的一条路径*路径之和恰好等于一个给定的整数,路径的定义是节点的data值之和,允许有负数。*打印所有满足条件的路径其实这是某公司电话面试我的一道题,自己当时答得不是很好,思考一番之后想到了比较完善的解法。可惜面试已经过去了,算了,当做是一种经历的记录吧~一共有三种,下面来一一给出。其实就是树的后序遍历。1、作为一
kay_zhyu
·
2013-04-30 18:00
面试100题
之4倒水问题
倒水问题这种智力题经常会问到,总结起来其实其实有三个类型。这几个问题先放在这里,待贫尼一个一个去攻克~~~~1、给两个水杯,容量为v1,v2,问怎么倒出体积为v的水来。水无限量。OK,成功搞定一个。链接:http://blog.csdn.net/kay_zhyu/article/details/87929402、给三个水杯,容量为v1,v2,v3,容量最大的那个水杯的水是满的,怎样倒出体积为v的水
kay_zhyu
·
2013-04-12 13:00
面试100题
系列之3一种关于拆分思路的算法
今天去参加腾讯的笔试,最后一道附加题。两个数组a[N],b[N],其中a[N]的各个元素值已知,现给b[i]赋值,b[i]=a[0]*a[1]*a[2]...*a[N-1]/a[i];要求:1.不准用除法运算;2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等);3.满足时间复杂度O(n),空间复杂度O(1);我自己的思路:通过分别拆分成[a[0],a[i-1
kay_zhyu
·
2013-04-11 12:00
算法
面试100题
系列之5字符串的排列组合问题
1、字符串的组合输入一个字符串,找出字符串中所有字符的所有组合形式。比如说abcd,其组合形式有a,b,c,d,ab,ac,ad,bc,bd,cd,abc,abd,acd,bcd,abcd。这里认为adb和abd是一样的情况。组合的情况也就是遇到一个字符,分两种情况,取当前这个字符,或者不取当前这个字符。然后对于每一个字符都做这样的考虑,典型的递归思路。voidRange(char*a,intIn
kay_zhyu
·
2013-04-09 19:00
面试
递归
面试100题
系列之6给出洗牌的一个算法,并把洗好的牌放在一个整型的数组里
首先,一副牌有54张,可以与0~53一一对应,所以定义一个数组,用0~53来表示这副牌。洗牌的过程就相当于数组中的元素随机的进行交换。对这54个数,每一个对应的生成一个随机数,然后将当前位置上的数与生成的随机位置上的进行交换就可以了。这样可以随意洗牌了。#include #include voidshuffle(int*poker) { inttemp; intr; for(int
kay_zhyu
·
2013-04-09 18:00
算法
面试
微软面试、经典算法、编程艺术、红黑树4大系列总结
无私分享,造福天下以下是本blog内的微软
面试100题
系列,经典算法研究系列,程序员编程艺术系列,红黑树系列4大经典原创系列作品与一些重要文章的集锦。
leoleocmm
·
2013-04-08 14:00
面试100题
系列之9找连通区域
给一个二维数组,假设只有0,1标记,找出标记1可以连通的区域,这里只考虑上下左右四个方向。从左到右,从上到下扫描二维数组,如果当前节点在地图中为1,那么影响它所属的连通区域标号的就只有上和左,这样就分为下面四种情况:1、上和左在地图上都是1,并且连通区域标号不同,那就合并这两个区域,并将总的区域数减1,新的连通区域标号设置为上和左中最小的一个。如果相同,就直接设值,不用合并。2、只有上为1,则直接
kay_zhyu
·
2013-04-07 20:00
笔试
牛人博客收集
Android高仿【优酷】圆盘旋转菜单的实现(附代码)(6)AndroidJQuery(7)Android游戏开发专栏(8)Android小知识 【Java】 (1)java多线程网络数据采集 【面试】(1)微软
面试
qunqin
·
2013-03-25 16:00
面试100题
系列之10关于删除多余空格的再思考
题目描述:1、无连续相邻的两个空格2、字符串开头和结尾无空格3、新的一行开头和结尾无空格要得满分,必须满足一下两个条件A、不能增加新的内存空间B、只能循环字符串一次C、不准用库函数参考代码:这样就可以从文件中读入换行符了#include //写删除字符串中的空格的程序 voidmain() { charstr[10000]; intflag;//用来标记,空格标记为0,新行标记为1,其余
kay_zhyu
·
2013-03-20 17:00
面试100题
系列之10删除字符串中多余的空格
题目描述:(微软的一道笔试题)1、无连续相邻的两个空格2、字符串开头和结尾无空格3、新的一行开头和结尾无空格要得满分,必须满足一下两个条件A、不能增加新的内存空间B、只能循环字符串一次C、不准用库函数参考代码:#include voidmain() { charstr[10000]; intflag;//用来标记,空格标记为0,新行标记为1,其余的标记为2 inti,j; whil
kay_zhyu
·
2013-03-20 09:00
笔试
三、动态规划算法解最长公共子序列LCS问题(2011.12.13重写)
[+]动态规划算法解LCS问题 作者July 二零一零年十二月三十一日本文参考:微软
面试100题
系列V0.1版第19、56题、算法导论、维基百科。
jfkidear
·
2013-03-17 20:00
keys
one
08.MS
100'
牛人博客收集
Android高仿【优酷】圆盘旋转菜单的实现(附代码)(6)AndroidJQuery(7)Android游戏开发专栏(8)Android小知识 【Java】 (1)java多线程网络数据采集 【面试】(1)微软
面试
SJF0115
·
2013-03-12 19:00
博客
面试100题
:21.中兴面试题:求整数数列中和等于给定值的两个数
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入两个整数n和m,从数列1,2,3.......n中随意取几个数,使其和等于m,要求将其中所有的可能组合列出来。解一:此解只是列出符合该sum的所有两个整数,而题目要求是任意几个整数/*Title:21
gocode
·
2013-02-26 10:00
面试100题
:20.把对应数字字符串转换成整数
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。分析:每扫描到一个字符,我们把在之前计算得到的值乘以10再加上当前字符表示的数字值,这个思路用循环不难实现
gocode
·
2013-02-25 11:00
面试100题
:19.用最快的方法求斐波那契数列第n项
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:定义Fibonacci数列如下: 0 n=0f(n)=1 n=1,2f(n-1)+f(n-2) n>2输入n,用最快的方法求该数列
gocode
·
2013-02-25 11:00
面试100题
:18.求从圈中不停的删除第m个数字之后最后剩下的数字
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求
gocode
·
2013-02-21 17:00
面试100题
:17.查找第一个只出现一次的字符
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。解一:利用栈保存外循环出现的字符,然后进行内循环遍历。如果发现有重复的字符,则出栈,同时推出内循环。再取外循环下一个字符压栈,
gocode
·
2013-02-21 14:00
面试100题
:16.打印二元树
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。输入: 8 / \ 6 10 / \ / \5 7 9 11 输出:8 6 10
gocode
·
2013-02-21 13:00
数据结构+算法
面试100题
学习(一)
最近在网上看到了一份精选微软等公司数据结构+算法
面试100题
,顿时有了目标,决定花一些时间来仔细学习这些问题(以C语言为编程语言)。
y658t
·
2013-02-17 11:00
数组分割
http://www.cnblogs.com/freewater/archive/2012/08/23/2652974.html本文说是《编程之美》2.18新思路,其实也是July的《微软等公司
面试100
f81892461
·
2013-02-07 22:00
面试100题
:15.求二叉树的镜像
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 输入: 8 / \ 6 10 /
gocode
·
2013-02-01 15:00
面试100题
:14.求在有序数组中查找两个数的和为指定数
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、1
gocode
·
2013-02-01 14:00
面试100题
:13.求单向链表倒数第k个节点
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。分析:因为是单向链表,不能从尾部向头部遍历,所以要找到一种合适的方法遍历到倒数第K个节点。解一:假设整个链表有n个结点,那
gocode
·
2013-01-30 17:00
(微软
面试100题
)查找最小的K个元素
问题描述:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。解题思路:构建一个K个元素的堆,最终的算法复杂度为K*log(n)#include"stdafx.h" #include #include #include #include /** *@briefmax_heapify,filterupaheap * *@param
huangkangying
·
2013-01-29 22:00
面试100题
:12.不使用乘法等关键字求和
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。分析:解一:利用类的构造函数进行加法运算,创建一个数组,长度为n。/
gocode
·
2013-01-29 17:00
面试100题
:11.求二叉树中节点的最大距离
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。分析:把最深的左子树距离加上最深的右子树距离就
gocode
·
2013-01-29 17:00
面试100题
-4
题目:在一个字符串中找到第一个只出现一次的字符,如输入abaccdeff,则输出b(Google2006) 分析:如果只是从头到尾的比较每个字符以及它后面到末尾的字符,这样时间复杂度会达到O(n2),这样的代码肯定不行,应该继续寻找优化的算法 因为字符串是由一个个字符组成的,而每一个字符在ASCII表中都对应自己的ASCII值,这样就转化成了一个hash表,其中每个字符是key,每个字符在字符
dav7651
·
2013-01-15 09:12
算法
面试
(微软
面试100题
)判断两个链表是否相交
问题描述:给定两个链表LinkList1,LinkList2,判断两个链表是否相交?解题思路:这是一道常考题了,解题的思路主要如下:1.首先要考虑到链表是否有环?2.如果链表没有环,则可以分别遍历链表,如果相交,最后两个指针一定会相遇3.如果有环且相交,那么环上面的任意一个节点都一定会出现在另一个链表上。那么就变成了判断 环上的点是否链表上的问题。关于判断链表是否有环的算法:这个算法应该在网上出
huangkangying
·
2013-01-09 20:00
面试100题
-3
一.题目:写一个函数,要求实现两个整数之和,函数体内不得使用+-*/运算我的思路:首先想到的是异或操作,也大概知道应该是要记录进位,然后将这个进位逐步相加,但是相加的时候怎么不用运算实现呢,到这里思路直接卡死。分析:1,想法不全面,完整的思路应该是排除基本运算之后,想到的是位运算,再细化之后才是异或操作 2.有进位这一点想到了,但是进位之后相加的这个结果怎么实现没有想到 3.卡死的地方其实
dav7651
·
2012-12-31 16:51
面试
面试100题
:10.翻转句子中单词的顺序
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“Iamastudent.”,则输出“student.aamI”。解
gocode
·
2012-12-26 17:00
面试100题
:9.判断整数序列是不是二元查找树的后序遍历结果
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5,7,6,9,11,10,8,由于这一整数序列是如下树的后序遍历结果: 8
gocode
·
2012-12-26 17:00
面试100题
:8.杂题(先占位)
转载并参考July的博客http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html,万分感谢!题目:此贴选一些比较怪的题,由于其中题目本身与算法关系不大,仅考考思维。特此并作一题。1)有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关,这两个房间是分割开的,从一间里不能看到另一间的情况。现在
gocode
·
2012-12-26 17:00
面试100题
-2
本题目转自博客http://zhedahht.blog.163.com/blog/static/25411174201131184017844/完全出于加强算法能力的单纯目的。 完整的题目描述:某公司有几万名员工,请完成一个时间复杂度是O(n)的算法对该公司员工的年龄做排序,可以使用O(1)的辅助空间 思路:1.从要求的时间复杂度上看应该是稳定排序 2.员工的年龄一般集中在20-60岁之间分布
dav7651
·
2012-12-25 16:08
算法
面试
面试100题
-1
面试题100题——1求最大子数组之和(转自何海涛大神的博客http://zhedahht.blog.163.com/blog/static/254111742007219147591/)题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或者多个整数组成一个子数组,每个子数组有一个和,求所有子数组的和的最大值,要求时间复杂度是0(n) example:数组为[1,-2,3,10,-4,7
dav7651
·
2012-12-24 21:35
算法
面试
微软等数据结构+算法
面试100题
全部答案集锦
一年之前的10月14日,一个名叫July(头像为手冢国光)的人在一个叫csdn的论坛上开帖分享微软等公司数据结构+算法
面试100题
,自此,与上千网友一
wu_lai_314
·
2012-12-15 15:00
精选微软等公司数据结构+算法
面试100题
带答案(41-60)
41、求固晶机的晶元查找程序。晶元盘由数目不详的大小一样的晶元组成,晶元并不一定全布满晶元盘,照相机每次这能匹配一个晶元,如匹配过,则拾取该晶元,若匹配不过,照相机则按测好的晶元间距移到下一个位置。求遍历晶元盘的算法求思路。(不懂)42、两个非降序链表的并集,1->2->3和2->3->5并为1->2->3->5。另外只能输出结果,不能修改两个链表的数据。思路:只用输出结果,并不需要用链表将元素链
wu_lai_314
·
2012-12-15 00:00
[微软
面试100题
] memmove
题目用C语言实现函数void*memmove(void*dest,constvoid*src,size_tn)。memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。代码void*memmove(void*dest,constvoid*src,size_tn) { if(dest==NULL||src==NULL)error(“NULLpointers”); byte
beiyouyu
·
2012-12-04 17:00
[微软
面试100题
] 设计包含min函数的栈
题目定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。分析栈是LIFO的队列,当一个新元素入栈时,栈的最小值状态是已经确定的,这时只需比较新元素与最小值的大小,并将新的最小值记录在该元素上。显然,只用在标准的栈实现上,为每个元素加入一个伴随值min。代码classStackWithMin { public: StackWit
beiyouyu
·
2012-12-04 14:00
[微软
面试100题
] 二元查找数变成有序的双向链表
题目输入一颗二元查找树,将该二元查找树转换成一个排序的双向链表。要求:不能创建任何新的节点,只能调整指针的指向。例如: 10 / \ 6 14 / \ / \4 8 12 16转换后的结果为4--6--8--10--12--14--16structBSTreeNode { intm_nValue;//valueofthenode BSTreeNode*m_pLeft;//l
beiyouyu
·
2012-12-04 14:00
微软
面试100题
之32 不能被继承的类
转载自:July http://blog.csdn.net/v_JULY_v/article/details/6126406 题目:用C++设计一个不能被继承的类。分析:这是Adobe公司2007年校园招聘的最新笔试题。这道题除了考察应聘者的C++基本功底外,还能考察反应能力,是一道很好的题目。在Java中定义了关键字final,被final修饰的类不能被继承。但在C++中没有final这个关键字
miao6664659
·
2012-11-27 11:00
微软
面试100题
之24栈的push、pop序列
转载自:July http://blog.csdn.net/v_JULY_v/article/details/6126406题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的pu
miao6664659
·
2012-11-26 20:00
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部)
这几天一直在看了July写了【横空出世,席卷互联网[评微软等公司数据结构+算法
面试100题
】,里面的好多算法都很不错,所以决定把看过掌握地并亲自试验一遍没有问题后再写到自己的博客中,当然算法的思想及实现都会注明来自何方
dsislander
·
2012-11-23 23:24
算法
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
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
其他