Hello world!

Algorithmic interview is good ≠ technical interview is good

Frequently asked questions about technical interviews

  1. Project experience and practical problems encountered in the project
  2. The most impressive bug I encountered, how to solve it
  3. Object-oriented programming
  4. Design related
  5. Network, security, memory, concurrency
  6. 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

  1. Various sorting algorithms
  2. Implementation of basic data structures and algorithms, such as heap, binary tree, graph…
  3. Use of basic data structures such as linked lists, stacks, queues, hash tables, graphs, Trie, and lookup sets
  4. Basic algorithms: depth first, breadth first, binary search, recursion
  5. Basic algorithm ideas: recursion, divide and conquer, backtracking, greedy, dynamic programming…

Select the right OJ (Online Judge)

The whole idea of solving algorithm problem

  1. 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)
  1. 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
      1. Traverse common algorithm ideas (to do the classification of the problem, to see which algorithm is the problem)
      2. Walk through common data structures
      3. 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)
      4. 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