The interviewer talk about the basics:
- C ++ basics of the language; design patterns; UML diagram; software engineering knowledge;
- C ++ memory management;
- Data structures and algorithms ; programming capability; knowledge part of the data, probability, linear algebra; the ability to problem analysis;
- Programming basics; concurrency control; algorithm and time, spatial complexity; basic concept of the language;
- Programming Fundamentals; basic knowledge of computing systems; algorithm and design capabilities;
- OS level of understanding: memory management, file operations, program performance, multi-threading, thread-safe; mastery of programming languages; classical algorithms and data structures ;
- From my own perspective, it should be short of classic algorithms and data structures;
Programming language:
- Q grammar programming language; to use a programming language to write code to solve a problem; by using code, determine the candidates mastery of language;
- C ++ interview:
- The interviewer asked direct understanding of the C ++ language;
- The interviewer took out a prepared code so that candidates analysis;
- Required candidates to write code to define a type or types member function;
- Effective C ++; C ++ primer; depth exploration of C ++ object model; The C ++ programming Language;
:( data structure around a few common data structure to expand)
- About this data structure can refer to: Implementation and Analysis of classical data structure ;
- Array: linear table structure; find duplicate numbers; arrays can be used as a hash array; look two-dimensional array;
- String: linear table structure; string is a sequence of several characters; string replacement, to ask the original string is replaced with a new memory or to replace the string; Note c ++ string manipulation API ;
- List: the list of pointers to a plurality of nodes connected chain-like structures; complex list: In addition to the list pointer pointing to the next node, as well as a pointer to an arbitrary node;
- Tree: Binary Tree Traversal 6 written ; tree investigated subject, examine the operation of complex multi-pointer;
- Stack: it is closely related to recursion; the use of two stack to simulate the behavior of the queue;
- Queue; FIFO principle; queue can be achieved by means of breadth-first search;
Algorithms and data manipulation: to view the specific algorithm based Strategy Summary
- And recursive loop: recursive implementation is relatively simple, relatively high cycle performance achieved; in the interview process, and we can discuss the interviewer, select the appropriate method for programming;
- Find and Sort: searching and sorting algorithm is a key test of the algorithm;
- Backtracking: backtracking recursive method can be easily achieved; however, if recursion is not used, and the stack can be used to communicate with the interviewer implemented;
- Dynamic programming: the problem can be decomposed into sub-problems recursively analyzed from the perspective of the problem; there is overlap between the sub-problems. To avoid double counting; bottom-cyclic code can be implemented; the sub-optimal solution to the problem is calculated and saved as an array; next sub-problem solutions based on solutions to solve the biggest problem;
- Greedy algorithm: If the problem decomposition child with special options, the use of this option will be able to get the optimal solution; you can use the greedy algorithm; when necessary, to prove the correctness of the greedy algorithm;
- Bitwise: bit arithmetic operation data belongs; with a total, or, XOR, NOT, the left and right 6 arithmetic operations;
Algorithms and data manipulation:
Kept up to date, please indicate the source; for more information, please attention cnblogs.com/xuyaowen;
Code repository: https://github.com/yaowenxu/codes/tree/master/ prove safety Offer