随笔分类 -  【微软面试100题】

上一页 1 2 3 4 下一页

求一个矩阵中最大的二维矩阵 【微软面试100题 第三十五题】
摘要:题目要求: 求一个矩阵中最大的二维矩阵(元素和最大).如: 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是4 5 5 3. 要求:1)写出算法;2)分析时间复杂度;3)写出相关代码。 参考资料:编程之美 2.15题目分析: 从矩阵开头逐个求2*2矩... 阅读全文

posted @ 2014-10-31 09:32 tractorman 阅读(356) 评论(1) 推荐(0) 编辑

实现一个队列 【微软面试100题 第三十四题】
摘要:题目要求: 实现一个队列。队列的应用场景是:一个生产者线程将int型的数入列,一个消费者线程将int型的数出列。 参考资料: 编程之美1.10题目分析: 可以按照操作系统中的生产者与消费者模型来实现代码,大致思路如下:void producer(void){ while(1) { ... 阅读全文

posted @ 2014-10-31 08:52 tractorman 阅读(317) 评论(0) 推荐(0) 编辑

字符串匹配算法 【微软面试100题 第三十三题】
摘要:题目要求: 给一串很长字符串,要求找到符合要求的字符串。 例如目的串:123,则1*****3***2,12*****3这些都要找出来。 其实就是类似一些和谐系统。。。。。。题目分析: 1.假如目的串为:"423",输入长字符串为:"4fsdfk2jfl3fd2jfksd3j4d4d4jkf... 阅读全文

posted @ 2014-10-31 00:00 tractorman 阅读(588) 评论(1) 推荐(0) 编辑

交换元素,使两数组之和的差最小 【微软面试100题 第三十二题】
摘要:题目要求: 有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 参考资料:程序员编程艺术(By July)题目分析: 先求两个序列和之差diff;然后从a和b中分别取一个元素,利用公式:diff-... 阅读全文

posted @ 2014-10-30 22:47 tractorman 阅读(858) 评论(0) 推荐(0) 编辑

在从1到n的正数中1出现的次数 【微软面试100题 第三十题】
摘要:题目要求: 给定 一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。 例如:N = 2,写下1,2.这样只出现了1个“1”。 N = 12,我们会写下1,2,3,4,5,6,7,8,9,10,11,12.这样,1的个数是5. 参考资料:编程之美2.4 ... 阅读全文

posted @ 2014-10-30 22:25 tractorman 阅读(309) 评论(0) 推荐(0) 编辑

栈的push、pop序列 【微软面试100题 第二十九题】
摘要:题目要求: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,单4、3、5、1、2就不可能是该压栈序列的弹出序列。 参考资料:剑指of... 阅读全文

posted @ 2014-10-30 22:03 tractorman 阅读(644) 评论(0) 推荐(0) 编辑

整数的二进制表示中1的个数 【微软面试100题 第二十八题】
摘要:题目要求: 输入一个整数,求该整数的二进制表示中有多少个1. 例如输入10,由于其二进制表示作为1010,有两个1,因此输出2. 参考资料:剑指offer第10题、编程之美2.1题目分析: 方法1除2取余法:一个数a%2的值为0或者1,根据是a的二进制表示的最低位为0,则前面结果为0;【取模... 阅读全文

posted @ 2014-10-30 17:22 tractorman 阅读(336) 评论(0) 推荐(0) 编辑

跳台阶问题 【微软面试100题 第二十七题】
摘要:题目要求: 一个台阶总共有n阶,如果一次可以跳1级,也可以跳2级。求总共有多少种跳法,并分析算法的时间复杂度。题目分析: f(n)=f(n-1)+f(n-2),f(1)=1,f(2)=2;--->f(3)=f(2)+f(1)=2+1;------>f(3)=Fibonacci(4)=Fibona... 阅读全文

posted @ 2014-10-29 15:28 tractorman 阅读(163) 评论(0) 推荐(0) 编辑

左旋转字符串 【微软面试100题 第二十六题】
摘要:题目要求: 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 例如:把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转函数。 参考资料:剑指offer第42题、编程珠玑第二章题目分析: 方法1 临时空间法:将前i个元素先复制到临时空间中,然后将余下的... 阅读全文

posted @ 2014-10-29 15:06 tractorman 阅读(614) 评论(0) 推荐(0) 编辑

字符串中找出最长的数字串 【微软面试100题 第二十五题】
摘要:题目要求: 写一个函数,它的原型是int ContinueMax(char *outputStr,char *inputStr); 功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串赋给其中一个函数参数outputStr所指内存。 例如:"abcd12345ed12... 阅读全文

posted @ 2014-10-29 14:22 tractorman 阅读(329) 评论(0) 推荐(0) 编辑

合并链表 【微软面试100题 第二十四题】
摘要:题目要求: 合并链表。已知链表h1和链表h2都是递增链表,要求合并后也是递增链表。 参考链接:http://blog.csdn.net/v_july_v/article/details/6870251 原链接代码while(h1 != NULL && h2 != NULL)应该修改为while... 阅读全文

posted @ 2014-10-29 14:02 tractorman 阅读(175) 评论(0) 推荐(0) 编辑

计算圆形是否和正方形相交 【微软面试100题 第二十三题】
摘要:题目要求: 用最简单、最快捷的方法计算出下面这个圆形是否和正方形相交。 3D坐标系原点(0.0,0.0,0.0);圆形:半径 r = 3.0,圆心 o = (*.*,0.0,*.*);正方形:4个角坐标 1:(*.*,0.0,*.*) 2:(*.*,0.0,*.*) 3:(*.*,0.0,*.*... 阅读全文

posted @ 2014-10-29 12:12 tractorman 阅读(323) 评论(0) 推荐(0) 编辑

猜牌游戏 【微软面试100题 题二十二题】
摘要:题目要求: 有4张红色的牌和4张蓝色的牌,主持人先拿任意两张,再分别在A、B、C三人额头上帖任意两张牌,A、B、C三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什么颜色的牌,A说不知道,B说不知道,C说不知道,然后A说知道了。 请教如何推理,A是怎么知道的。如果用程序,又怎么实现呢... 阅读全文

posted @ 2014-10-29 11:52 tractorman 阅读(355) 评论(0) 推荐(0) 编辑

寻找和为定值的多个数 【微软面试100题 第二十一题】
摘要:题目要求: 输入两个整数n和m,从数列1,2,3.......n中随意取几个数,使其和等于m ,要求将其中所有的可能组合列出来。不能是一个数。题目分析: 0/1背包问题,动态规划代码实现:#include#includeusing namespace std;listlist1;void fin... 阅读全文

posted @ 2014-10-29 10:26 tractorman 阅读(244) 评论(0) 推荐(0) 编辑

字符串转换成整数 【微软面试100题 第二十题】
摘要:题目要求: 输入一个表示整数的字符串,把该字符串转换成整数并输出。 例如:输入字符串"235",输出整数235. 参考资料:剑指offer第49题、程序员编程艺术 (by July)题目分析: 1.基本思路:int StrToInt(char *str){ int num = 0; ... 阅读全文

posted @ 2014-10-29 10:18 tractorman 阅读(395) 评论(7) 推荐(0) 编辑

斐波拉契数列 【微软面试100题 第十九题】
摘要:题目要求: 写一个函数,输入n,求斐波拉契数列的第n项。斐波拉契数列的定义如下: 参考资料:剑指offer第9题、编程之美2.9题目分析: 方法1:递归法,效率很低,而且会计算很多重复; 方法2:迭代法,通过保存中间项避免重复计算,时间复杂度O(n); 方法3:公式法,时间复杂度O(1... 阅读全文

posted @ 2014-10-28 23:39 tractorman 阅读(572) 评论(4) 推荐(0) 编辑

圆圈中最后剩下的数字 【微软面试100题 第十八题】
摘要:题目要求: 0,1,...,n-1这n个数排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删词第3个数字,则删除的前四个数字一次是2、0、4、1,因此最后剩下的数字是3. 参考资料:剑... 阅读全文

posted @ 2014-10-28 19:18 tractorman 阅读(1234) 评论(0) 推荐(1) 编辑

第一个只出现一次的字符 【微软面试100题 第十七题】
摘要:题目要求: 在一个字符串中找到第一个只出现一次的字符,如输入abaccdeff,则输出b。 参考资料:剑指offer第35题题目分析: 采用hash表,建立一个256大小的hash空间。需要遍历两次字符串,第一次遍历用来更新hash表,第二次遍历找出第一个只出现一次的字符。代码实现:#incl... 阅读全文

posted @ 2014-10-28 18:52 tractorman 阅读(231) 评论(0) 推荐(0) 编辑

从上往下打印二叉树 【微软面试100题 第十六题】
摘要:题目要求: 从上往下打印出二叉树的每个结点,同一层的结点按照从左往右的顺序打印。 例如输入下图的二叉树,则依次打印出10,5,12,4,7 10 / \ 5 12 / \ 4 7 参考资料:剑指offer第23题、编程之美3.10题目分析: 使用一个辅助队... 阅读全文

posted @ 2014-10-28 18:02 tractorman 阅读(182) 评论(0) 推荐(0) 编辑

二叉树的镜像 【微软面试100题 第十五题】
摘要:题目要求: 输入一颗二元查找树(二元搜索树),将该树转换为它的镜像。 例如: 8 8 / \ ---> / \ 6 11 11 6 参考资料:剑指offer第20题题目分析: 思路很简单:从根结点开始,交换左右结点的值,同时递归的处理左... 阅读全文

posted @ 2014-10-28 16:38 tractorman 阅读(192) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 下一页

导航

统计

点击右上角即可分享
微信分享提示