大神 地址 :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 来定位元素。)