Google Pro Tip: Use Back-of-the-envelope-calculations to Choose the Best Design - High Scalability -

  http://highscalability.com/blog/2011/1/26/google-pro-tip-use-back-of-the-envelope-calculations-to-choo.html

Building software systems at Google

  http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/people/jeff/Stanford-DL-Nov-2010.pdf

Putting Google's Network to work for You

  https://www.youtube.com/watch?v=DWpBNm6lBU4

Building Software Systems At Google and Lessons Learned

  https://www.youtube.com/watch?v=modXC5IWTJI&feature=player_embedded

Get that job at Google

  http://steve-yegge.blogspot.hk/2008/03/get-that-job-at-google.html

The Google technical interview How to get your dream job

  http://xrds.acm.org/article.cfm?aid=2539270

Interviewing @ Google

  http://www.catehuston.com/blog/2010/07/13/interviewing-google/

How to get a job at Google, interview questions, hiring process

  http://dondodge.typepad.com/the_next_big_thing/2010/09/how-to-get-a-job-at-google-interview-questions-hiring-process.html

An Inside Look at Google - Working at Google

  https://www.youtube.com/watch?v=aOZhbOhEunY

How to Work at Google -Candidate Coaching Session: Tech Interviewing

  https://www.youtube.com/watch?v=oWbUtlUhwa8&feature=youtu.be

Inside Google Australia

  https://www.youtube.com/watch?v=Y1xF3BDBHSY

Interviewing at Google

  https://www.youtube.com/watch?v=w887NIa_V9w

University Consortium | Google Developers

  https://developers.google.com/university/

Introduction to Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare

  http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-spring-2008/

Distributed Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare

  http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-852j-distributed-algorithms-fall-2009/

Advanced Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare

  http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2008/

How we hire - Google Careers

  https://www.google.com/about/careers/how-we-hire/

GitHub - google/styleguide: Style guides for Google-originated open-source projects

  https://github.com/google/styleguide

Bring questions. Build answers. - Google Careers

  https://www.google.com/about/careers/

Preparing for your Google Interview

  https://sites.google.com/site/coachingsessions1/home

The Architecture of Open Source Applications (Volume 2): Scalable Web Architecture and Distributed Systems

  http://www.aosabook.org/en/distsys.html

The Google app – Voice Search, Answers and Assistance

  https://www.google.com/search/about/

Distributed Systems and Parallel Computing - Research at Google

  http://research.google.com/pubs/DistributedSystemsandParallelComputing.html

Topcoder is repeatable, on-demand crowdsourcing, done right, at scale.

  https://www.topcoder.com/

Classic problems

Towers of Hanoi

There's a temple in the middle of Hanoi. In that temple, there are three very large diamondencrusted posts, and on those posts are sixtyfour disks, all of a different size. There are a set of priests in that temple, and their task is to move the entire stack of sixtyfour disks from one post to a second post. The rules, though, are, they can only move one disk at a time, and they can never cover up a smaller disk with a larger disk. Write a recursive program to solve this problem. What is the complexity?

Searching and sorting algorithms

Write code to search a sorted list.
Write a binary search algorithm.
Write a selection sort algorithm.
Write code to create a hash table of size 256

Shortest path problem

Write an algorithm to plan a route by minimising distance or time (eg Google Maps)

Traveling salesman

Write an algorithm to determine the least cost roundtrip, given multiple cities and varying costs of flights

Knapsack problem

Write an algorithm to optimize the value of items you can fit into a backpack based on weight and volume

Sorting algorithms - know how they work, average/worst case running times, stack space
● Insertion sort
● Quicksort
● Mergesort
● Heapsort

Searching algorithms
● Sequential search
● Binary search
● Hashing
● Binary search trees
● Key indexing

Other algorithms
● Priority queues
● Selection

Back of the envelope calculations
● Know your powers of 2 (binary)
● Be able to express mega/giga/etc in binary and/or scientific notation
● Know cycle times and disk seek times for CPUs
● Explain and justify your assumptions
● Don’t be afraid of dealing with huge numbers!

Sample questions from Programming Pearls

1. Given a file containing at most ten million 7digit integers with no duplicates. What is an efficient way to print these numbers in ascending order using just 1.5Mb RAM and reading the data just once? What are the consequences of only having 1Mb of RAM and no other storage? How would your answer change if duplicates were permitted?

2. Given a sequential file that contains at most four billion 32bit integers in random order, find a 32bit integer that isn’t in the file (and there must be at least one missing...why?). How would you solve this with unlimited main memory? How would you solve it if you could use several external files but only a few bytes of main memory?

3. Rotate a onedimensional vector of n elements left by i positions. For instance, with n=8 and i=3, the vector abcdefg is rotated to defghabc. Simple code uses an nelement intermediate vector to do the job in n steps. Can you rotate the vector in time proportional to n using only a few dozen extra bytes of storage?

4. Given a dictionary of English words, find sets of anagrams. For instance, “pots”, “stop”, and “tops” are all anagrams of one another because each can be found by permuting the letters of the others.

5. Write functions for the following date problems: given two dates, compute the number of days between them? given a date, return it’s day of the week? given a month and year, produce a calendar of the month as an array of characters

6. Given a very long sequence (say, billions or trillions) of bytes, how would you efficiently count the total number of one bits? (i.e. how many bits are turned on in the entire sequence)

7. Although Quicksort uses only O(logn) stack space on the average, it can use linear space in the worst case. Explain why, then modify the program to use only logarithmic space in the worst case.

8. Write a program for finding the kthsmallest element in the array x[0...n1] in O(n) expected time. Your algorithm may permute the elements of x.

9. Build the fastest possible complete function to generate a sorted array of random integers without duplicates. (You need feel constrained to use any prescribed interface for set representation)

10. Implement heapbased priority queues to run as quickly as possible? at what values of n are they faster than sequential structures?

Google stuff的更多相关文章

  1. Linux 利用Google Authenticator实现ssh登录双因素认证

    1.介绍 双因素认证:双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起才能发挥作用的身份认证系统.双因素认证是一种采用时间同步技术的系统,采用了基于时间.事件和密钥三变量而产生的一 ...

  2. linux上使用google身份验证器(简版)

    系统:centos6.6 下载google身份验证包google-authenticator-master(其实只是一个.zip文件,在windwos下解压,然后传进linux) #cd /data/ ...

  3. Google软件构建工具Bazel原理及使用方法介绍

    近期,Google开源了强大的自动化构建工具Bazel. 正好博主近期在使用china版的Bazel--腾讯自主开发的Blade,所以准备跟大家分享一下Google Bazel这个分布式构建系统的原理 ...

  4. Google Java编程库Guava介绍

    本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含集合(Collections),缓存(Caching),并发编程库(C ...

  5. 序列化笔记之一:Google的Protocol Buffer格式分析

    从公开介绍来看,ProtocolBuffer(PB)是google 的一种数据交换的格式,它独立于语言,独立于平台.作为一个学了多年通信的人,ProtocolBuffer在我看来是一种信源编码.所谓信 ...

  6. [异常解决] How make ubuntu use Google Search

    1.Download the hosts file fromhttps://laod.cn/hosts/2016-google-hosts.html [1] 2.Write a bash shell ...

  7. Google翻译之路

    如何将整个网站都翻译成某种语言,想必大家都有碰到这样的问题吧. 如果能够访问Google的话, 那这个太容易不过了. 来看,下面的就是Google提供的直接翻译某个网站. http://transla ...

  8. 使用google 语言 api 来实现整个网站的翻译

    ---恢复内容开始--- 使用google 语言 api 来实现整个网站的翻译,这时我们可以利用免费的google api来做处理来实现多语言的功能. 放在 HTML 文件中 <div id=& ...

  9. [转载]Google Guava官方教程(中文版)

      原文链接  译文链接 译者: 沈义扬,罗立树,何一昕,武祖  校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] ...

  10. fir.im Weekly - 聊聊 Google 开发者大会

    中国互联网的三大错觉:索尼倒闭,诺基亚崛起,谷歌重返中国.12月8日,2016 Google 开发者大会正式发布了Google Developers 中国网站 ,包含了Android Develope ...

随机推荐

  1. UVA 12661 Funny Car Racing 有趣的赛车比赛(最短路,变形)

    题意:赛道有n个交叉点,和m条单向路径(有重边),每条路都是周期性关闭的,且通过仍需一段时间.在比赛开始时,所有道路刚好打开,选择进入该道路必须满足“在打开的时间段进入,在关闭之前出来”,即不可在路上 ...

  2. 更改nginx默认的网页目录

    默认网站根目录为/usr/local/nginx/html,要将它改成/homw/www vi /usr/local/nginx/conf/nginx.conf 将其中的           loca ...

  3. 剑指Offer:找出数组中出现次数超过一半的元素

    题目:找出数组中出现次数超过一半的元素 解法:每次删除数组中两个不同的元素,删除后,要查找的那个元素的个数仍然超过删除后的元素总数的一半 #include <stdio.h> int ha ...

  4. 【转】提示框第三方库之MBProgressHUD iOS toast效果 动态提示框效果

    原文网址:http://www.zhimengzhe.com/IOSkaifa/37910.html MBProgressHUD是一个开源项目,实现了很多种样式的提示框,使用上简单.方便,并且可以对显 ...

  5. Win10 查看IE的临时目录

    C:\Users\YOUR_NAME\AppData\Local\Microsoft\Windows\INetCache

  6. log4j和web.xml配置webAppRootKey 的问题

    在tomcat下部署两个或多个项目时,web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为“webapp.root”,如下: <!-- 应用路径 --> &l ...

  7. SGU 390-Tickets(数位dp)

    题意:有标号l-r的票,要给路人发,当给的票的编号的各数位的总和(可能一个人多张票)不小k时,才开始发给下一个人,求能发多少人. 分析:这个题挺难想的,参考了一下题解,dp[i][sum][left] ...

  8. POJ3279 Fliptile 枚举+简单搜索

    题意:一个矩阵,每个点1或0,然后每次翻一个点,它周围上下左右(包括自己)1->0,0->1,问最少翻几次可以矩阵全是0,忽略题目说的字典序 分析:枚举第一行所有的情况,然后下面几行也随之 ...

  9. class0513(html基础加强)

    内容:HTML.CSS 目标:掌握手写HTML实现一般难度的Web页面的能力(如网站注册表单),为ASP.Net学习打基础.坚持手写HTML,可视化设计只是一种自学的手段. 参考书:张孝祥<Ja ...

  10. 5个最优秀的Java和C#代码转换工具

    http://www.codeceo.com/article/5-java-csharp-convert-tools.html 毋庸置疑,Java是一门最受欢迎而且使用最广泛的编程语言,目前有超过9百 ...