Data Structure and Algorithms
  • Introduction
  • 面经
    • 亚马逊面经
  • Sorting
    • Quick Sort
    • Merge Sort
    • Heap Sort
  • Palindrome
    • Check String Palindrom
    • Palindrome Partitioning
    • Palindrome Partitioning II
    • Longest Palindromic Substring
    • Valid Palindrome
  • Linked List
    • Remove Duplicates from Sorted List
    • Remove Duplicates from Sorted List II
    • Remove Nth Node From End of List
    • Remove Linked List Elements
    • Remove Duplicates from Unsorted List
    • Remove duplicate Circular Linked list
    • Reverse Linked List
    • Reverse Linked List II
    • Reverse Nodes in k-Group
    • Partition List
    • Insertion Sort List
    • Reorder List
    • Linked List Cycle
    • Rotate List
    • Merge k Sorted Lists
    • Copy List with Random Pointer
    • Nth to Last Node in List
    • Add Two Numbers
    • Add Two Numbers II
    • Palindrome Linked List
  • Binary Search
    • Sqrt(x)
    • Search a 2D Matrix
    • Search a 2D Matrix II
    • Search Insert Position
    • First Position of Target
    • Last Position of Target
    • Count of Smaller Number
    • Search for a Range
    • Search in a Big Sorted Array
    • First Bad Version
    • Find Minimum in Rotated Sorted Array
    • Find Minimum in Rotated Sorted Array II
    • Search in Rotated Sorted Array
    • Search in Rotated Sorted Array II
    • Find Peak Element*
    • Recover Rotated Sorted Array
    • Rotate String
    • Wood Cut
    • Total Occurrence of Target
    • Closest Number in Sorted Array
    • K Closest Number in Sorted Array
    • Maximum Number in Mountain Sequence
    • Search Insert Position *
    • Pow(x, n)
    • Divide Two Integers
  • Graph
    • Clone Graph
    • Topological Sorting
    • Permutations
    • Permutations II
    • Subsets
    • Subsets II
    • Word Ladder
    • Word Ladder II
    • N-Queens
    • N-Queens II
    • Connected Component in Undirected Graph
    • Six Degrees
    • String Permutation II
    • Letter Case Permutation
  • Data Structure
    • Min Stack
    • Implement a Queue by Two Stacks
    • Largest Rectangle in Histogram
    • Max Tree
    • Rehashing
    • LRU Cache
    • Subarray Sum
    • Anagrams
    • Longest Consecutive Sequence
    • Data Stream Median
    • Heapify
    • Ugly Number
    • Ugly Number II
  • Misc
    • PlaceHolder
    • Fibonacci
  • Array and Numbers
    • Merge Sorted Array
    • Merge Two Sorted Arrays
    • Median of two Sorted Arrays
    • Best Time to Buy and Sell Stock
    • Best Time to Buy and Sell Stock II
    • Best Time to Buy and Sell Stock III
    • Maximum Subarray
    • Maximum Subarray II
    • Maximum Subarray III
    • Minimum Subarray
    • Maximum Subarray Difference
    • Subarray Sum
    • Subarray Sum Closest
    • Two Sum
    • 3Sum
    • 3Sum Closest
    • 4Sum
    • k Sum
    • k Sum II
    • Partition Array
    • Sort Letters by Case
    • Sort Colors
    • Sort Colors II
    • Interleaving Positive and Negative Numbers
    • Spiral Matrix
    • Spiral Matrix II
    • Rotate Image
  • Dynamic Programming I
    • Triangle
    • Minimum Path Sum
    • Unique Paths
    • Unique Paths II
    • Climbing Stairs
    • Jump Game
    • Jump Game II
    • 01 Matrix
    • Longest Line of Consecutive One in Matrix
    • Shortest Path in Binary Matrix
  • Dynamic Programming II
    • Word Break
    • Longest Common Subsequence
    • Longest Common Substring
    • Edit Distance
    • Distinct Subsequences
    • Interleaving String
    • k Sum
  • Binary Tree And Divide Conquer
    • Binary Tree Preorder Traversal*
    • Binary Tree Inorder Traversal*
    • Binary Tree Postorder Traversal*
    • Maximum Depth of Binary Tree
    • Minimum Depth of Binary Tree
    • Balanced Binary Tree
    • Lowest Common Ancestor
    • Binary Tree Maximum Path Sum
    • Binary Tree Maximum Path Sum II
    • Binary Tree Level Order Traversal*
    • Binary Tree Level Order Traversal II
    • Binary Tree Zigzag Level Order Traversal
    • Validate Binary Search Tree
    • Inorder Successor in Binary Search Tree
    • Binary Search Tree Iterator
    • Search Range in Binary Search Tree
    • Insert Node in a Binary Search Tree
    • Remove Node in Binary Search Tree
    • Find the kth largest element in the BST
    • Kth Smallest Element in a BST
    • Serialize and Deserialize Binary Tree*
    • Construct Binary Tree from Preorder and Inorder Traversal
    • Convert Sorted Array to Binary Search Tree
    • Unique Binary Search Trees *
    • Unique Binary Search Trees II *
    • Recover Binary Search Tree
    • Same Tree
    • Symmetric Tree
    • Path Sum*
    • Path Sum II*
    • Flatten Binary Tree to Linked List
    • Populating Next Right Pointers in Each Node
    • Sum Root to Leaf Numbers
    • Binary Tree Right Side View
    • Count Complete Tree Nodes
    • Invert Binary Tree
    • Binary Tree Paths*
    • Subtree of Another Tree
  • A家面试总结
  • Expedia面经收集
  • Python 常用语句
  • lotusflare
  • Microsoft
  • 模板
  • Bing 组面试总结
  • 面试笔记
  • Sliding window
Powered by GitBook
On this page

Was this helpful?

A家面试总结

通过朋友内推获得一个机会,我大概有15年左右的软件开发工作经验,在国内也是从程序员一步一步踏踏实实做到了总监的位置,从来不存在找工作的问题,到了美国还是有点水土不服,没有办法只能面试a家的SDE2,虽然我觉得我做SD3 或者更高也不是问题,毕竟在国内也做了很多大型项目,我从前的一个技术经理,他需要人,所以他了解我,觉得我不错,想招我,但是面试还是要过的,电话面试还是比较顺利,白人小哥给了一道判断字符串是否为回文的问题,我答了上来,然后紧跟着又给了一道follow up,找出字符串里面的所有回文字串,答的不好,但是最后还是给了一个面试机会。三个礼拜后onsite.

Onsite 细节:

(1)第一轮,一个白人小哥,前20分钟问了问我的behavial question ,例如介绍我自己,项目情况,后25分钟给了一道:给出一个单词字典,然后一个字符串,输出所有的匹配单词的列表,一开始用了两层循环,后来又想用DFS,但是最后还是用了两层循环,实现了结果。

(2) 第二轮,技术经理的老板,就是部门老板,给我了45分钟的behavial quesion 说实话我的问题准备的不好,有的时候说车轱辘话。

(3) 第三轮:泰国小哥,上来就黑个脸,据我所知他们全组就一个亚裔,不知道为何上来就排斥我,直接一针见血的问,为啥简历上说帮助一个项目提高了效率25%,后来我解释道,我们build了一个platform,把重复的劳动简化了,后来他也是问了我大量的行为准则问题,最后给了我一道serialize and deserialize binary tree的问题,我没有做过这道题,所以一上来就上当了,直接用了中序遍历做serialize ,但是这样deserialize就会有大麻烦,最后他给我了一些提示,我还是勉强做了出来。

(4)中午吃饭,跟从前的技术经理瞎聊。

(5)第四轮:白人小哥,问了很多计算机基础,多种不同语言的区别,计算机的CPU等等,知识广度的问题,我面试前一个晚上没有睡好,所以经验是一定要睡好,我竟然有10分钟差点没有晕倒,大脑缺氧的感觉,所以身体是硬道理,否则难以承受高强度面试。所以这轮我是在眼前发黑中度过,最后技术题是删除循环链别的重复节点,这个题答的不好,就是想太多如果第一个节点是重复节点如何处理,也是因为面试经验少,如果平时做肯定没有问题,但是出了点小状况,所以答的不好。

(6) 第五轮,两个烙印,一进门就一脸坏笑,我预感传说中的bar raiser 到了,因为他们不是这个项目组的,他给了我一道非常简单的系统设计题,设计一个购买历史的feature, 当我认为是很简单的feature的时候的,我还是太天真了,因为我无论说什么,烙印都说好,那你实现,我实现了一半,烙印又说,哦不好意,你实现的feature已经存在,我从微观到宏观,从宏观到微观,无论我怎么问,他都没有让我明白,我要做什么,所以这轮我知道,他们俩就是来玩我的。

出了门,自己已经知道不可能有机会过了,果不其然第二天一早收到拒信,没有任何理由,如果从自己的能力来说不服气,做了15年,无论中国,还是美国的同事对我都是肯定肯定,很多都是从前的项目在让我回去,但是从面试技巧上来说,如同我第一次考驾照一样,虽然我在中国开了几年车,但是你要照样,作出夸张的动作来让考官get point,也许我没有get point.

后记: 痛定思痛,徘徊了半个月, 很多朋友劝我回去,很多朋友劝我创业,很多人劝我,我这个年龄,就不要拿自己的所短比人所长,但是我自己想来想去,我一直都是用自己的所短来比人的所长,才能走到今天,比的不是聪明,比的更不是幸运,比的就是那点撞南墙的毅力,所以我还是要继续提高自己的面试能力,看有没有可能进入一线的大公司。

PreviousSubtree of Another TreeNextExpedia面经收集

Last updated 4 years ago

Was this helpful?