设为首页 加入收藏

TOP

google interview tips 看完Tips才知道自己有多弱……(四)
2014-11-23 20:07:50 来源: 作者: 【 】 浏览:60
Tags:google interview tips 看完 Tips 知道 自己
象箭头表示,邻接矩阵和邻接表),并能说出它们各自的优缺点。你需要了解两种基本的图遍历算法:广度优先搜索和深度优先搜索,知道它们的算法复杂度,它们各自的适用情形,以及如何在实际代码中应用它们。如果有机会的话,你可以试着去学一些更加巧妙的算法,如Dijkstra算法。


●Other data structures: You should study up on as many other data structures and algorithms as possible. You should especially know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem, and be able to recognize them when an interviewer asks you them in disguise. Find out what NP-complete means.
● 其它数据结构:你应该尽可能地多学一些其它数据结构和算法,了解一些著名的NP完全问题,如旅行商问题和背包问题,并且能够在面试官在提及它们的时候认出它们,还要知道“NP完全”这个概念是什么意思。


Mathematics
数学


Some interviewers may ask basic discrete math, linear algebra or some other math questions, so you can spend some time before the interview refreshing your memory on (or teaching yourself) it. the essentials of combinatorics and probability. You should be familiar with n-choose-k problems and their ilk – the more the better.
有的面试官会问到基础的离散数学、线性代数或其他一些数学问题,所以你可以在面试前花点时间复习/自学一下。请准备基本的组合学和概率论知识。你应该熟悉“n选k”问题(n-choose-k problems)及类似问题——越多越好。


Systems Design
系统设计


You need to know powers of 2, and be good and back-of- the-envelope calculations. e.g. to estimate the required number of machines for a given design. Know Google’s products, and think about how you would design the back-end and also front-end. System design questions are a test of your problem solving. Sample topics include: features sets, interfaces, class hierarchies, distributed systems, designing a system under certain constraints, simplicity and robustness, tradeoffs.
你需要熟悉2的各次幂并能以此来进行估算。例如,估计一个给定的设计需要多少台计算机。你需要了解Google的产品,并思考换做你会如何设计后端与前端。系统设计题考察的是你解决问题的能力。可能的主题包括:功能集、接口设计、类继承体系、分布式系统、约束条件下的系统设计、系统的简单性和鲁棒性、折衷设计。


Operating Systems
操作系统


In fact the interview may cover but not limited to operating systems, also there may be other topics like network, parallel computing, compiler theory, etc. Here let’s just take operating systems for example: Know about processes, threads and concurrency issues. Know about locks and mutexes and semaphores and monitors and how they work. Know about deadlock and livelock and how to avoid them. Know what resources a processes needs, and a thread needs, and how context switching works,and how it’s initiated by the operating system and underlying hardware. Know a little about scheduling. The world is rapidly moving towards multi-core, so know the fundamentals of “modern” concurrency constructs.
实际上面试内容包括但不限于操作系统,还可能包括其他内容,如网络、并行计算、编译原理等。这里仅以操作系统为例:你需要了解进程、线程和并发问题,熟悉锁(locks)、互斥量(mutexes)、信号量(semaphores)、监视器(monitors)以及它们的工作方式,理解死锁(deadlock)、活锁(livelock)以及如何避免。你需要知道进程和线程所需的系统资源,清楚上下文切换(context switching)的工作方式,并了解操作系统和底层硬件如何创建它们。你还需要对任务调度(scheduling)要有一些认识。世界正在迅速向多核迈进,所以请你了解一下“现代”并行架构的基础知识。


Real-world problems
实际问题


Some interviewers may ask some real-world problems, they are looking for process of thought, creative solutions and being able to work out more than one way to solve a problem and talk through your rationale for choosing a certain way to approach solving the problem. So you could perhaps recommend an algorithm, code up a solution using that algorithm, analyze the runtime of your code and then optimize your solution.
有的面试官可能会问一些实际问题,以考察以下几个方面:思维过程是否清晰,能否提出创造性的解决方案并用多种方法解决问题,以及如何在探讨中选定解决问题的途径。因此你可以尝试提出一种算法,用这个算法写成解决方案的代码,分析代码的运行时性能,然后优化你的方案。


III.Where you can warm up and practice
在哪里热身和练习


You’re strongly suggested to PRACTICE your coding and algorithm before t

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇互联网it行业求职面试要点 下一篇软件测试常见笔试题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: