算法面试:精选微软等公司经典的算法面试100题 第26-35题
26.左旋转字符串
题目:
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
27.跳台阶问题
题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。
求总共有多少总跳法,并分析算法的时间复杂度。
这道题最近经常出现,包括MicroStrategy等比较重视算法的公司都
曾先后选用过个这道题作为面试题或者笔试题。
28.整数的二进制表示中1的个数
题目:输入一个整数,求该整数的二进制表达中有多少个1。
例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
分析:
这是一道很基本的考查位运算的面试题。
包括微软在内的很多公司都曾采用过这道题。
29.栈的push、pop序列
题目:输入两个整数序列。其中一个序列表示栈的push顺序,
判断另一个序列有没有可能是对应的pop顺序。
为了简单起见,我们假设push序列的任意两个整数都是不相等的。
比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。
因为可以有如下的push和pop序列:
push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,
这样得到的pop序列就是4、5、3、2、1。
但序列4、3、5、1、2就不可能是push序列1、2、3、4、5的pop序列。
30.在从1到n的正数中1出现的次数
题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。
例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。
分析:这是一道广为流传的google面试题。
31.华为面试题:
一类似于蜂窝的结构的图,进行搜索最短路径(要求5分钟)
32.
有两个序列a,b,大小都为n,序列元素的值任意整数,无序;
要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
例如:
var a=[100,99,98,1,2, 3];
var b=[1, 2, 3, 4,5,40];
33.
实现一个挺高级的字符匹配算法:
给一串很长字符串,要求找到符合要求的字符串,例如目的串:123
1******3***2 ,12*****3这些都要找出来
其实就是类似一些和谐系统。。。。。
34.
实现一个队列。
队列的应用场景为:
一个生产者线程将int类型的数入列,一个消费者线程将int类型的数出列
35.
求一个矩阵中最大的二维矩阵(元素和最大).如:
1 2 0 3 4
2 3 4 5 1
1 1 5 3 0
中最大的是:
4 5
5 3
要求:(1)写出算法;(2)分析时间复杂度;(3)用C写出关键代码
分享到:
相关推荐
- **2010年10月23日**:发表第二篇帖子,[推荐][整理]算法面试:精选微软经典的算法面试100题[前40题],该帖子被推荐四次。 - **2010年11月26日**:发表第三篇帖子,继续扩展题库,并设立了专门的讨论帖,邀请读者...
### IT公司面试经典题目解析 #### 一、把二元查找树转变成排序的双向链表 **题目解析**: 本题考查了二叉搜索树(BST)的基本性质及其变形应用。二叉搜索树是一种特殊的二叉树,其中每个节点的值大于其左子树中的...
根据提供的文件信息,我们可以整理出一系列与微软笔试面试相关的知识点,包括但不限于算法、逻辑思考、数学问题解决等。下面将详细解析这些知识点: ### 1. 数学问题 #### 示例一: - **题目**:一个数字,二进制...
- 第二题:将金条切成1/7和1/7的形式,通过累加来达到每日支付的目的。 - 第三题:颠倒链接表可以采用迭代而非递归的方式,逐个节点反转指针的方向。 - 第四题:插入节点到循环链表中,需要找到循环链表的尾节点,并...
这是因为第一次取出一个糖果后,第二次取出的糖果可能是不同颜色,第三次也有可能是不同颜色,直到第四次才能保证取出两个相同颜色的糖果。 #### 18. 颜料桶的比例问题 - **知识点**:体积混合、浓度计算 - **详细...
### .NET面试题详解 #### 1. 说说.NET中的值类型与引用类型的区别? 在.NET框架中,数据类型可以分为两大类:值类型(Value Types)和引用类型(Reference Types)。这两种类型的主要区别在于它们如何在内存中存储...
第二题讨论了一个数列的构建规则,涉及到数列的生成和规律识别。在IT行业中,对数列的理解和应用广泛存在于数据结构、算法设计、密码学等领域,能够帮助解决排序、查找、加密等多种问题。 #### 3. 编码与解码 文档...
可以这么说,开博头俩个月一直在整理微软等公司的面试题,而后的四个月至今,则断断续续,除了继续微软面试100题系列,和程序员编程艺术系列之外,便在写这经典算法研究系列和相关算法文章。 本经典算法研究系列...
### DotNet面试题知识点汇总 #### 一、Microsoft .Net平台基础 1. **GC (Garbage Collection)**:GC指的是垃圾回收机制,它是.NET运行时的一部分,负责自动管理内存资源,跟踪不再使用的对象并释放其占用的内存。...
根据给定的“Borland面试题”文档的内容,我们可以整理出以下相关的IT知识点: ### 1. Delphi与Borland的关系 - **Borland**是一家知名的软件开发公司,以其开发工具闻名于世。 - **Delphi**是Borland推出的一种...
根据提供的文件信息,我们可以整理出一系列与ASP.NET相关的面试知识点,并对这些知识点进行详细解析。 ### 1. 访问修饰符 - **private**: 私有访问修饰符,仅在当前类中可见。 - **protected**: 受保护访问修饰符,...
### 数据库面试基础知识知识点梳理 #### 一、MySQL 面试题(基础部分) 1. **Drop、Truncate、Delete 的区别** - **Drop**:用于删除表或视图等数据库对象。如果表中有数据,则使用 Drop 时将无法保留任何数据。...
Unity面试题解析 【第一部分】 1. 值类型与引用类型的区别: 值类型(如int, bool, struct)存储在栈中,直接包含其数据,复制时会创建数据副本;而引用类型(如class)存储在堆中,仅存储指向数据的引用,复制时...
本文件包含了十个经典算法的研究,微软面试的全部100 题,及前60 的答案。包括本博客结构之法算法之道,内的17 篇已经被推荐到CSDN 首页的文章。 然后,非常感谢您的下载。 希望,你得到了此份文件之后,尽力做好...
超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...