LCPython/google.md at master · VincentUCLA/LCPython · GitHub



LCPython/google.md at master · VincentUCLA/LCPython · GitHub

// 今天刚完成面试,还不确定结果,如果只看面经的话可以止步了,之后写的都是我个人的经验总结,只给大家作为借鉴,实力不够不敢误人子弟。 . visit 1point3acres for more. 首先我要详细的阐述一下我个人的答题流程(目前只针对google). 1point3acres 1.repeat question 2.clear question. From 1point 3acres bbs 3.confirm input data / output result. Waral 博客有更多文章, 4.abstract question 5.ALGO+DataStructure 6.time/space 7.write code 7.1 keep communcation 7.2 summary code 8 explain 9 run test case. Waral 博客有更多文章, 10 think about unit test case . From 1point 3acres bbs 解释一下我的答题流程希望对大家有帮助, 首先我们一定要知道google不是只要你写好看的代码,同时考察你思考的方式和过程,这需要靠交流来展现,所以交流很重要(我的两个google recruiter都跟我说要注重交流 交流 交流) 之前面试的人说面试第一步是要跟面试官针对问题深入探讨,讨论各种情然后再写代码,我不是非常同意,我个人认为,第一步不是讨论这个问题,而是你去重复这个问题!他说的问题你用自己的话简单的总结 然后告诉他我们现在面对一个什么问题,之后我们再跟面试官对细节进行讨论 这就是第二步讨论问题。 第三步是确定输入输出的参数,这个很重要,相同的问题不同的入参导致的结果就是解题算法可能不一样,如果他没有确定要求那我会按照我喜欢的来,如果面试官说输入的参数只可以是什么 . 1point3acres 第四步 抽象化这个问题,题刷多了你就会发现 什么最少的钱招聘工人,连接岛屿,最短路径,乱七八糟的描述 都是图 树 数组的问题,包装的很炫酷而已, 快速的删除那些没用的形容词 不要受到打扰(每个人思维逻辑不一样,你跟我说我们有几个飞机场 有飞机航班 几点起飞,求最快的到某个机场的时间,当我听见飞机 我快速的联想到各种飞机 空姐什么的,跳跃性思维,给我一个跳板我能飞出这个宇宙) 第五步 当我们抽象化问题之后,基本上就锁定了一部分算法,然后试想这个算法是否可行,(比如一个图 dfs bfs unionfind 哪个可以需要什么数据结构 这要靠多刷题自我积累) 第六步 如果可以的话,写代码之前 简单的说一下时间 空间复杂度 前六步 每一步都不是自己站在那里想,每一步你都要跟面试官交流,对话内容 以我面经第一题为例子 展示我打流程. more info on 1point3acres 1.我:"我想简单的重复一下我们的问题, 我们有一个blabla 还有一个blabla 想要输出一个blabla 对么?" 面试官"对的宝贝/不对亲爱的 我们有..... 没有...." "ok 那我们有....." 2.我:"那如果输入的参数是这个样 我们怎么办,会不会有空字符串啊 亲爱的, 会不会字典里有一样的单词呢? 宝宝" 面试官"可能有哦,你说的都有可能/ 放心不存在的" 3.我:"honey 输入参数我可以自己定么? list可以不,还是一定要什么。。。。" 面试官"你长得帅听你的/ 不行我说是什么就是什么" 456.我: 好的,我们现在的有这个和那个,我们要找subsequence 我们问题的重点是找.... 我决定用hashmap<Integer List> 删选我们的字典 然后将长度大于target的单词作为我们的候选单词 然后每个单词compare 因为我们可能存在相同的单词 我们可能需要一个hashset 时间大约是O(xxx) 空间大约是O(xxx) 你觉得可以么 宝贝?" 面试官 "你真帅·完美答案/可以不错 但是有没有更好的 或者其他的解法么?" . 一亩-三分-地,独家发布 我: "当然有,亲爱的 我们可以用Trie数据结构 blabla 但是代码多时间复杂度差不多,我们可以在第一种解法上优化代码 你想要什么姿势?啊不对,是你想要什么算法 我都会哦" 面试官"我要。。。。。".本文原创自1point3acres论坛 7. 写代码,完成大部分代码才解释 或者完成一部分代码才解释, 最好的方法是你写某些功能之前就提前说了 我现在要干嘛******** 我创建这个HashMap是为了什么 这个变量名是代表什么. 围观我们@1point 3 acres 面试官点头 或者微笑 或者么么哒你 你就可以写了,他要是不理你,你不要生气(他可能在想晚上要吃什么,不是每个面试官都很专业的,不要因为他的行为 影响你的思路和节奏).1point3acres网 8.完成每一步之后,黑板上就有你的完整代码了,按照顺序 简单的描述一下你的算法流程,这里是什么 那里是什么 9.跑例子 10 提出多种不同的例子 其实就那么几种,字符串很长,字符串很多,字符串空,重复的单词,单词里有特殊字符*&……%¥


Read full article from LCPython/google.md at master · VincentUCLA/LCPython · GitHub


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts