转自:http://kb.cnblogs.com/page/95951/

经过了三个月的断断续续的面试和准备,最近一阵抓了很多时间努力准备, 本以为最后的一次面试能弥补前面的不足,可惜还是功亏一篑... 想想主要是自己编程水平不行,不能快速的写出bug free code,另外 design和算法方面有差距,另外是前面的准备不足,后面拼命努力最终还是无补 :( 把面试题给大家分享,希望大家都能拿到满意的offer。

  1) 一个range的序列(链表或数组),如[1,3], [2,6], [8,10],[15,18] 写程序合并有重叠的range,比如上面的序列合并为[1,6], [8,10], [15,18] 如果这个序列不是静态的,而是一个数据流,如何 处理?

   后来听说了interval tree,不过还是不太清楚具体如何解决,有大牛能详细说说么?

  2) 利用快速排序的划分方法,把数组分成三部分,< val, = val, val。

  后来发现 programming peals 上有原题..

  3) 对于google查询的词组成的动态的数据流,在任意时刻取出10个完全随机的查询。

  当时死活没答上来,后来在板上发现是经典的 reservior sampling,早点到板上看面经就好了..

   4) 把一个字符串转换成32bit的整数 = 要注意处理溢出的情况

  5) 在一个数组中寻找三个数,使得它们的和为0

  这个是找两个和为0的数的扩展

  6) 大概是用一位数组来表示二维数组,但是每一行的元素个数可以不同,实现get,set函数

  这个算是比较简单的

  7) 已知每个待查找的字符串长度为10,如何在一个很长的字符串的序列里快速查找这样的字符串

  当时的思路是,遍历字符串把所有长度为10的的字符串算出累加值, 类似于 sum = a0 * 10 + a1 * 10^2 + ... + a9 *10^9,然后用这个sum 做hash,面试官ms觉得还马马虎虎。应该有更好的办法。

   8) 写程序生成边长为n的如下的方阵 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 = 顺时针生成即可,注意边界条件

  9) 应用程序的re-order的buffer的设计,如果满了可以丢弃 大概是应用程序需要in order的数据包,但是收到的数据可能是乱序的(类似于IP分片,每一个数据片有一个序列号,但是不同的数据片 到达应用程序的顺序可能和发送的顺序不一样,引起乱序)。然后有 一个buffer,可以存放几个数据片,问如何设计算法通过这个buffer 把数据片变成有序。说了仿照IP分片重组,设置timer再加上ack来做, 面试官好像不太满意。

  10) 假设有很多多边形,最大的是地球,每一个国家可以认为是一个多边形,每一个省 ,市,区,小区,楼都可以认为是一个多边形,这些多边形之间要么是相互包含的,要么是互相没有交集的,(不存在overlap的情况)。给出一个多边形,要求写程序求出最小的包含它的多边形。已知有现成的函数可以判断两个多边形是否相互包含, iscontained(poly p1, poly p2)。

  如何加速?如果在多机的情况下呢?

  可以用树结构表示包含的关系。可以用二分搜索做加速。多机的话可以range一个机器处理一个区域,另外要考虑前端处理机的负载不要成为瓶颈,所以让每个机器自己判断此多边形是否包含。

转:Google全程面试题目(未完成)的更多相关文章

  1. Android面试题目及其答案

    转自:http://blog.csdn.net/wwj_748/article/details/8868640 Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应 ...

  2. PHP面试题目搜集

    搜集这些题目是想在学习PHP方面知识有更感性的认识,单纯看书的话会很容易看后就忘记. 曾经看过数据结构.设计模式.HTTP等方面的书籍,但是基本看完后就是看完了,没有然后了,随着时间的推移,也就渐渐忘 ...

  3. 2016年Web前端面试题目汇总

    转载: 2016年Web前端面试题目汇总 以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢 ...

  4. http协议详解及htt面试题目,常见的http状态码

    http协议详解及htt面试题目,常见的http状态码 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. HTTP ...

  5. C++程序员面试题目总结(涉及C++基础、多线程多进程、网络编程、数据结构与算法)

     说明:C++程序员面试题目总结(涉及C++基础知识.多线程多进程.TCP/IP网络编程.Linux操作.数据结构与算法) 内容来自作者看过的帖子或者看过的文章,个人整理自互联网,如有侵权,请联系作者 ...

  6. HTML/CS3相关面试题目

    一.HTML/CS3基本面试题目. 1. 常用那几种浏览器测试? 1.1浏览器:IE,Chrome(谷歌),FireFox(火狐),Safari(苹果计算机的最新操作系统Mac OS X中的浏览器,使 ...

  7. 总结CSS面试题目的考察点及常见布局问题整理

    整理网上流传的若干份面试题目,突发奇想,总结关于CSS面试题目的考察点,发现问题大多围绕几个属性和几种题目,水平有限,仅供参考. 写这个博文内心有种莫名奇妙的自我谴责感,实在不应该把面试层叠样式“应试 ...

  8. 【转】asp.net c# 网上搜集面试题目大全(附答案)

    asp.net c# 网上搜集面试题目大全(附答案) http://www.cnblogs.com/hndy/articles/2234188.html

  9. 33条C#、.Net经典面试题目及答案

    33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如".NET中类和结构的区别"."ASP.NET页面之间传递值的几种方式? ...

随机推荐

  1. Human Gene Functions

    Human Gene Functions Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18053 Accepted: 1004 ...

  2. Linux内核同步机制

    http://blog.csdn.net/bullbat/article/details/7376424 Linux内核同步控制方法有很多,信号量.锁.原子量.RCU等等,不同的实现方法应用于不同的环 ...

  3. linux网络基础--学习笔记

       

  4. uTenux——HelloWord

    由以上几节的学习,我们从这一节开始真正的以实例讲解uTenux\AT91SAM3S4C开发套件的应用.如其他的软件程序开发一样,uTenux\AT91SAM3S的学习我们也要从第一个程序代码-Hell ...

  5. 专题:php页面跳转方法

    php只有一种方法,利用JavaScript的window.location[和window.location.href效果相同]是一种方法,利用html的meta的Refresh是一种方法. 代码 ...

  6. application 网站计数器

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  7. oracle PL/SQL基础编程

    PL/SQL(Procedural Language/SQL)是oracle中引入的一种过程化编程语言 PLS-00103:出现符号"declare"在需要下列之一时 符号&quo ...

  8. SQL语句最基本的性能优化方法

    有些人还不知道sql语句的基本性能优化方法,在此我简单提醒一下,最基本的优化方法:   1.检查是否缺少索引.调试的时候开启“包括实际的执行计划”   执行后会显示缺少的索引,   然后让dba帮助添 ...

  9. CUBRID学习笔记 33 net事务 cubrid教程示例

    conn.BeginTransaction(); string sql = "create table t(idx integer)"; using (CUBRIDCommand ...

  10. 02~ 一步一步教你使用 SVN之SVN 的介绍

    SVN的介绍 一.学习SVN的主要内容的介绍 1.基本操作:学习SVN有哪些基本操作 2.服务器端的安装配置:SVN中必不可少的2个环境之一,会在下面的课程中介绍服务器如何去安装和配置 3.客户端软件 ...