看大神文章小结——微软等面试 41-45

大神 地址 :http://blog.csdn.net/v_JULY_v/article/details/6015165

 感觉时间很紧 都写代码 调试 没时间  接下来可能会选择一些 写代码 其他的 写个思路吧。

41.求固晶机的晶元查找程序 
晶元盘由数目不详的大小一样的晶元组成,晶元并不一定全布满晶元盘, 
照相机每次这能匹配一个晶元,如匹配过,则拾取该晶元, 
若匹配不过,照相机则按测好的晶元间距移到下一个位置。 
求遍历晶元盘的算法求思路。 

看不懂。。完全不知道。 过


42.请修改append 函数,利用这个函数实现: 
两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5 
另外只能输出结果,不能修改两个链表的数据。 

这一题 没有问题吧。 就是 2个指针 分别指向2个链表。 比较这2个指针指向的数字。 小的 加入到新的链表中。 并且 指针进一。一直到 2个指针 走完。


第43题:
43.递归和非递归俩种方法实现二叉树的前序遍历。

递归就不用做了。主要是非递归。

可以自己实现一个栈来模拟递归。 理清楚了 也是不难。 不过 感觉这种题目没意思。


44.腾讯面试题: 
1.设计一个魔方(六面)的程序。 

2、有一千万条短信,有重复,以文本文件的形式保存,一行一条,
有重复。请用5分钟时间,找出重复出现最多的前10条。
如果是有序的
读进来就能出结果;
如果是无序的
建议采用hash或者双hash归类,如果想一次完成,还可以维护一个文件排列表
3、收藏了1万条url,现在给你一条url,如何找出相似的url。(面试官不解释何为相似)
例如http://topic.csdn.net/u/20081029/22/c8fe34c1-25ab-4b94-986e-4c2fd4caa664.html

1.用 2维数组来表示一个面。 其实 魔方 就是3个方向的旋转。 假设4个面 是1,2,3,4  上面是5 下面是6这六个2维数组。然后 3个方向的 旋转是

1-2-3-4   1-5-3-6    2-5-4-6  这样来交换各个面的数据。 

2.这个就是 hash 来映射。

3.相识这个东西 太含糊了吧。。过


45.雅虎:
1.对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)
某一个元素也加一,现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。


某一个 是指有且是有一个? 是不是 意思是 每一个数 他的周围和 都大于等于他? 这个肯定可以筛选出一大堆。 另外 既然一个元素加一 必有另一个元素 加一。  所以 肯定是偶数。其他 我也想不到了。我估计 这样 一般也能做出来了。 不过 貌似很难测试


2.一个整数数组,长度为 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

这一题 可以写代码试试。 我的思路 比较简单。就是  先排序  并且 算出 数组的和 sum。 分成 M份 的 每份的和 最小是 这个数组的最大值 max。 然后 从   max  --》  sum  挨个判断 可不可以分成 M份 每份 都是这个值。  判断很简单。 2个指针 一头一尾 都向中间移动。 主要考虑 大数字那边 有没有 一个小数字 可以匹配 找不到 直接 下一轮。

想简单了 这样只是算的2个数字相加。明显不对。

貌似想不到好方法。 算了。。。。

3. 4 对括号可以有多少种匹配排列方式?比如两对括号可以有两种: () ()和( () )

 我的想法就是 其实就是 4个元素 出栈的顺序有几种。 就是2的4次方吧

4、创新工场:
求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2} 的
最长递减子序列为{9,5,4,3,2}

遍历一次 就可以了啊 用一个变量 记着 当前最长递减的个数。然后 不停更新 一遍下来就ok了



5、微软:
一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}
是由{6,5,4,3,2,1} 左移两位形成的,在这种数组中查找某一个数。

 步骤  1 先遍历一遍 找出 变化的点

           2. 改造 2分查找 既可。(就是 求出 变化的点。 比如 例题。 变化的点是4  那么 就 当做 在 4 到 4+6 二分查找。 通过 %6 来定位元素。)







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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值