微软等公司数据结构+算法面试100题系列(61——100题)

http://zhedahht.blog.163.com/blog/#m=0此人的博客太好了!

62.找出链表的第一个公共结点。
题目:两个单向链表,找出它们的第一个公共结点。

链表的结点定义为:
struct ListNode

{

      int         m_nKey;

      ListNode*   m_pNext;

};

分析:这是一道微软的面试题。微软非常喜欢与链表相关的题目,
因此在微软的面试题中,链表出现的概率相当高。

 

 

 

 

63.在字符串中删除特定的字符。

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They

are students.”和”aeiou”,

则删除之后的第一个字符串变成”Thy r stdnts.”。

分析:这是一道微软面试题。在微软的常见面试题中,与字符串相关的题目占了很大的一部

分,

因为写程序操作字符串能很好的反映我们的编程基本功。

 

 

 

 

 

65.输出1 到最大的N 位数

题目:输入数字n,按顺序输出从1 最大的n 位10 进制数。比如输入3,

则输出1、2、3 一直到最大的3 位数即999。

分析:这是一道很有意思的题目。看起来很简单,其实里面却有不少的玄机。

 

2,用递归可以比较简短地实现: 

 

 

 

69.旋转数组中的最小元素。

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数

组的最小值为1。分析:这道题最直观的解法并不难。从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(N)。但这个思路没有利用输入数组的特性,我们应该能找到更好的解法。

 

 

 

66.颠倒栈。 题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1 在栈顶。 颠倒之后的栈为{5, 4, 3, 2, 1},5 处在栈顶。

 

http://zhedahht.blog.163.com/blog/static/25411174200943182411790/

 

68.把数组排成最小的数。

题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的

一个。

例如输入数组{32, 321},则输出这两个能排成的最小数字32132。

请给出解决问题的算法,并证明该算法。

分析:这是09 年6 月份百度的一道面试题,

从这道题我们可以看出百度对应聘者在算法方面有很高的要求。

http://zhedahht.blog.163.com/blog/static/25411174200952174133707/

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值