Hello world!
Algorithmic interview is good ≠ technical interview is good
Frequently asked questions about technical interviews
- Project experience and practical problems encountered in the project
- The most impressive bug I encountered, how to solve it
- Object-oriented programming
- Design related
- Network, security, memory, concurrency
- System design: Scalability
- Problems that may occur when the system is used on a large scale
Good at technical interviews ≠ Getting an offer
Past projects are crucial. Let people know who you are through them
- Mooc, Coursera
- Create your own project: proposal, memo, player
- Solve small problems by yourself: crawler, data analysis, word frequency statistics
- Not the Project of the Project: an excellent technical book on code consolidation
- Share: own technology blog, GitHub account
You don’t have to finish an Introduction to Algorithms for an algorithm interview.
- At the beginning of reading can skip, grasp the small; The proof of theory part can be reduced
- Advanced data structures and algorithms with low probability of interview mention (red-black Tree, B-tree, Fibonacci heap, computational geometry, number theory, FFT)
- Far from reaching the level of an informatics competition
Focus on the underlying algorithms and data structures
- Various sorting algorithms
- Implementation of basic data structures and algorithms, such as heap, binary tree, graph…
- Use of basic data structures such as linked lists, stacks, queues, hash tables, graphs, Trie, and lookup sets
- Basic algorithms: depth first, breadth first, binary search, recursion
- Basic algorithm ideas: recursion, divide and conquer, backtracking, greedy, dynamic programming…
Select the right OJ (Online Judge)
The whole idea of solving algorithm problem
- Pay attention to the conditions
- O (nlogn) algorithm
- Don’t worry about extra space: Extra space needs to be created
- Data size 10000: design O (n^2)
- When there are no ideas
- Give yourself a few simple test cases and experiment (how to solve the simplest case)
- Violent solutions are often the starting point for thinking
- Optimization algorithm
- Traverse common algorithm ideas (to do the classification of the problem, to see which algorithm is the problem)
- Walk through common data structures
- Conventional thinking
- Interchange of space and time (hash table)
- Preprocessing information (sorting)
- Find the answer at the bottleneck: O(nlogn)+O(n^2)+O(n^3)
- Actual writing problem
- Judgment of extreme conditions
- Array, string empty? The quantity is zero, right? Pointer to NULL?
- Variable names have semantics
- Code modularity, reuse
- Whiteboard programming for basic problems
- Judgment of extreme conditions
- Optimization algorithm