google 笔试题汇总 (转载).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
google 笔试题汇总 (转载).txt跌倒了,爬起来再哭~~~低调!才是最牛B的炫耀!!不吃饱哪有力气减肥啊?真不好意思,让您贱笑了。我能抵抗一切,除了诱惑……老子不但有车,还是自行的……google 笔试题汇总 (转载) 2008-10-07 1726 (分类默认分类) 一、单选 1、80x86中,十进制数-3用16位二进制数表示为?0010000 2、假定符号-、、$分别代表减法、乘法和指数运算,且 1)三个运算符优先级顺序是:-最高,其次,$最低; 2)运算符运算时为左结合。请计算3-24$12$3的值: (A)4096,(B)-61,(C)64,(D)-80,(E)512 算符 3、下列伪代码中,参数是引用传递,结果是? calc(double p, double q, double r){q=q-1.0;r=r+p} main(){   double a = 2.5, b = 9.0;   calc(b-a, a, a);   print(a); } (A)1.5 (B)2.5 (C)10.5 (D)8 (E)6.5 4、求输出结果: int foo(int x, int y){   if(x =0 y = 0) return 1;   return 3 foo(x - 1, y 2); } printf(%dn, foo(3, 5)); (A)81 (B)27 (C)9 (D)3 (E)1 5、下列哪个数据结构在优先队列中被最广泛使用?a (A)堆 (B)数组 (C)双向链表 (D)图 (E)向量 6、以下算法描述了一个在n国元素的双向链表中找到第k个元素的方法(k = 1且k = n): 如果k = n - k,从链表开始往前进k-1个元素。 否则,从终点出发,往回走n - k个元素。 这个算法的时间代价是? (A)θ(nlogn) (B)θ(max{k, n - k}) (C)θ(k + (n - k)) (D)θ(max{k, k - n}) (E)θ(min{k, n - k}) 7、有一个由10个顶点组成的图,每个顶点有6个度,那么这个图有几条边?30 (A)60 (B)30 (C)20 (D)80 (E)90 8、正则表达式L = x(xyx+)。下列哪个字符串不符合L b (A)x (B)xyxyx (C)xyx (D)yxx (E)yx 9、为读取一块数据而准备磁盘驱动器的总时间包括e (A)等待时间 (B)寻道时间 (C)传输时间 (D)等待时间加寻道时间 (E)等待时间加寻道时间加传输时间 二、算法 1、打印出一个二叉树的内容。 2、在一个字符串中找到第一个只出现一次的字符。如abaccdeff,输出b。 3、给定一个长度为N的整数数组(元素有正有负),求所有元素之和,最大的一个子数组。分析算法时空复杂度。不必写代码。 附上动态规划做法的答案 最大子序列 问题: 给定一整数序列A1, A2,... An (可能有负数),求A1~An的一个子序列Ai~Aj,使得Ai到Aj的和最大 例如:整数序列-2, 11, -4, 13, -5, 2, -5, -3, 12, -9的最大子序列的和为21。对于这个问题,最简单也是最容易想到的那就是穷举所有子序列的方法。利用三重循环,依次求出所有子序列的和然后取最大的那个。当然算法复杂度会达到O(n^3)。显然这种方法不是最优的,下面给出一个算法复杂度为O(n)的线性算法实现,算法的来源于Programming Pearls一书。在给出线性算法之前,先来看一个对穷举算法进行优化的算法,它的算法复杂度为O(n^2)。其实这个算法只是对对穷举算法稍微做了一些修改:其实子序列的和我们并不需要每次都重新计算一遍。假设Sum(i, j)是A[i] ... A[j]的和,那么Sum(i, j+1) = Sum(i, j)+ A[j+1]。利用这一个递推,我们就可以得到下面这个算法: int max_sub(int a[],int size) {   int i,j,v,max=a[0];   for(i=0;isize;i++)   {     v=0;     for(j=i;jsize;j++)     {       v=v+a[j];Sum(i, j+1) = Sum(i, j) + A[j+1]         if(vmax)          max=v;     }   }   return max; } 那怎样才能达到线性复杂度呢?这里运用动态规划的思想。先看一下源代码实现: int max_sub2(int a[], int size) {   int i,max=0,temp_sum=0;   for(i=0;isize;i++)  

文档评论(0)

baifumei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档