Hangzhou shuangfei slag shuo. Some time ago, my brother pushed thunder fire, no written test directly called me to interview, the location in netease Building. I got up before 7 o ‘clock in the morning and returned to the dormitory after 7 o ‘clock in the evening, so I felt very tired.
It was written on the projection of the interview site that there were three rounds of cross interviews in the morning. If you pass the interview, there will be one director interview and one HR interview in the afternoon. As a result, after I finished three interviews in the morning, I was given four rounds of interviews in the afternoon. There were no interviews with the director and HR, so there were seven rounds of technical interviews (this was the first time I took part in the interview, it was unbearable). Fortunately, all of them were in the form of 1V1.
Since I was deeply impressed by the first round of interview, I would like to mention it separately. I may get mixed up with the other six rounds of questions, so I just listed them directly behind.

One side: The interviewer is young, looks a few years older than me, feels very skilled, kind of like the big brother next door…

  1. Start by introducing yourself; (I can’t remember if I was asked about the project, but I was also asked about it in the last few pages anyway).
  2. Then give me a piece of paper, let me write down the ranking method of know, (I wrote six of seven can’t remember, the mainstream of all written, including hill sorting bucket sort), then let me introduce their implementation methods, time complexity and space complexity are written, write; they are stable
  3. What is the most complex data structure you know? (I said hash table at the beginning, asked me if I have more complex, I said various trees, red black trees, B+ trees, B trees, balanced trees, etc.) asked me these are probably from undergraduate years, now remember? (can remember the general, the specific left and right rotation may not remember the details); Ps: IN fact, I can say a little bit, but I was afraid to write out gg;
  4. How do I merge two balanced binary trees? (At first I thought it was a simple comparison of size + recursion, but later I found it seemed to have to meet the characteristics of height, so I first said the characteristics of balanced binary tree, and then thought about it for a while, and the interviewer said no, that’s ok, no);

A balanced binary tree requires only a height difference of less than 1, and does not require the left subtree to be smaller than the root and the right subtree to be larger than the root. The ones that have this requirement are red black trees. I remember wrong! In this case, merging two balanced binary trees is actually a sequence traversal, but if I remember correctly, I can pull it out.


  1. Now there are 100W account passwords that need to be saved and searched as fast as possible. What data structure do you choose? (B+ tree); Why is that? (I briefly teased the properties of B+ trees); Talk about the complexity of inserting, deleting, and finding passwords. (I’m not sure, just a shot in the dark :nlogn, nlogn, logn);
  2. What do you know about graph theory algorithms? (BFS,DFS, shortest path, minimum spanning tree, minimum cut maximum flow…) Do you usually use it? (USED DFS BFS in the project);
  3. Ok, so I’m going to give you a problem, a two dimensional coordinate system, give you the coordinates of n points, draw a line and divide them into two parts (any line), and try to divide them as evenly as possible, not too complicated. (just finished figure out the problem, I subconsciously think I graph theory, think the feeling is not, then told him about my train of thought: hypothesis according to the y coordinate points, then traverse n coordinates, with a maximum heap to save, then from the top to n / 2 times, if the current at the top of the number and the pop-up number is different, you can draw a line in the middle). He said what if all the points are the same? What if they overlap a little bit? (I was a little blinded and thought I was on the wrong track. I thought of other ways for a few minutes, and I couldn’t help thinking about graphs. Finally, I asked him how to do it. He said to use the idea of dichotomy, and then calculate the median and mode for the horizontal and vertical coordinates. I didn’t quite understand, so I pretended to nod.
  4. What games have you played? (a lot) Familiar with which one? Now let me test Yasso’s E. How? (I bar bar bar a lot of can think of all said, PS: here before asked the elder brother experience, to be organized, with a tree to measure, first divided into several categories, and then slowly subdivided and so on). But at the end of the interview, the interviewer reminded me that if e does not have normal attack, will it trigger equipment special effects? (I didn’t think of that, but it reminded me that in the next few interviews there were also questions about skills, so I just mentioned it).
  5. Q: Yasso’s e cannot be used against the same target for a short period of time. How to measure it? (Briefly) How do you realize that you can’t release e on a target (I started by saying object oriented, setting time markers for each unit object and so on)? Then he said it wasn’t object-oriented, remind me if it was a buff or something, I said buff);
  6. Do you think the enemy should be taken to the spring when they return to the city at the moment of E? (Should not). What about white Bull’s big move in Dota? (will be. Ps: because I played DoTA too); Why do you think that is? (It is possible that the white bull’s big move in code implementation appears behind the target after the big move is released); So how did Yasso avoid that? (You can calculate the position of the released skill based on the position relationship between the target and yourself, rather than using the target position as a reference) Do you think this is gonna work out? (can);
  7. Discussing bugs and plugins:
  • “You are in your second year of graduate school… Dota high school play…. It should be version 6.72.” (Inside me:?? Oh, my gosh! It all works out).
  • Tell me about a bug you found while playing Dota. (Inside me:?? Dota is doing so well, there are no bugs. I thought for a while and said I didn’t find it.
  • One of the most famous bugs is that bats can use their own towers when making A big move. (Inside me:?? And this kind of thing? I didn’t know that.
  • Let’s talk about dota plugins. (?????? And plugins? Oh, folio hanging)
  • Do you know how it works? (Inside me:?? God, I said I don’t know how it works, so I don’t know how it works, is the whole map gone? Or only heroes?)
  • Obviously, the interviewer hasn’t opened the full picture, so tell me about LOL plugins. (?????? Lol and plugins? I’m going to pull that off quickly. I’ve played crossfire, too.
  • Tell me what you got. (Show ghosts, perspective, through walls, auto aim, flying into the ground…)
  • Do you know how it works? (Inside me:?? When ghost mode first came out, it was possible to make the ghost knife manifest by deleting a file in the installation directory, and I did try that.)
  • The interviewer nodded and muddled through;
  1. Maybe I can’t remember…
  2. Is there anything you want to ask me? (Asked about my understanding of the protection is to test open, do you need to do the work of resisting plug-ins?) You have to do it, too. You can’t avoid it. The end.

The remaining six sides:

  • I should introduce myself except for the last time when the interviewer thinks I am tired.
  • The project was asked several times, including the specific implementation, the main problems solved by the project, the best technology learned from the project, the benefits of the project experience for our position (because my project is reliability automation testing) and so on.
  • Many test scenarios, including test skills, test hero, login window and so on, ask you how to test;

Probability:

Find the probability that when one box is empty, the other box has exactly r roots left. (I was a little nervous and confused. I made a mistake in the end, but I still talked about my ideas and wrote my formula. Although it might be wrong, I still didn’t give up resistance.)

Intelligence:

  1. Two blind men bought two pairs of socks, one white and one black. They got mixed up and asked themselves how they could divide the socks into one black and one white. (Seen before, a little thought on the answer. The interviewer asked me why I thought socks were all the same size and could not be separated by hand. Of course, in fact, if I asked, she’d say it was the same size.
  2. A round table, two people put coins up, can only be tiled can not overlap, the last person to put the victory (then the coins have nowhere to put), ask the first to win or put after the win. (junior high school saw the problem, directly tell him that I have done this problem, and then talk about the second kill);

Test knowledge:

  1. Talk about the test method you know;
  2. What are the indicators of performance testing? For example, to perform a performance test on a login function, what are the metrics? (Response time, maximum number of simultaneous requests…) How do I measure the maximum number of requests that can be processed simultaneously? (Answer two seconds) The interviewer smiled knowingly, “Yes, two is no problem”;
  3. Unit tests with what (junit);
  4. Have you been stress-tested (no);
  5. The interviewer saw the flowchart mentioned in my project and asked the following questions:
  • The mission flow chart is serial, for example, talking to one NPC after another, but it is possible that some players talk to one NPC in advance, which leads to the failure of the following mission, in this case, how to test? (Put all the tasks in sequence).
  • What happens when there are too many tasks? (The number of test cases will explode.)
  • How do you optimize? (After thinking for a while, I can’t come up with the idea of heap sorting. Can we use the idea of reverse test in pairs first, and then test in pairs as a group, so that the test cases should be reduced a lot.)
  • According to the importance of the game, for example, the normal process is definitely the most important, and then according to the log, the process that the player has walked more, allocate more testing resources for the high importance).
  • Finally, the interviewer says they have the problem now and explains his thinking;
  1. There are many more, I can’t think of them at the moment;

Java basis:

  1. The difference between protected, public and private (the interviewer was wrong when he said I was protected);
  2. The difference between abstract classes and interfaces
  3. Static;
  4. Difference between List and ArrayList;
  5. Difference between int and Integer;
  6. Where are global variables, temporary variables, and static variables respectively?
  7. Differences between c++ and Java;
  8. What is in Java memory;
  9. Say something about the garbage collection system (I forgot about it, and I was more nervous about knowing that I had forgotten about it, SO I just said whatever I could remember);
  10. How to determine which objects can be deleted? What does reachable mean?
  11. What are the limitations of the interface?
  12. There might be a few more, come to think of it;

Data structure:

  1. Talk about data structures that you know;
  2. There are some numbers that I can insert or take out of the fourth largest number every time. What data structure do I use? (I answer: Maintain a minimum heap of 1/4 of the current amount of data, and the amount squeezed out during insertion is stored in the maximum heap, fetched from the top of the minimum heap, and then removed from the top of the maximum heap and inserted into the minimum heap. I don’t know if it’s true, but the feedback should be satisfied based on the interviewer’s attitude at that time.
  3. The difference between arrays and linked lists;
  4. Characteristics of BST;
  5. I think there’s more, I don’t remember;

Algorithm:

  1. Find the greatest common divisor of a and b; (In terms of ideas, the first idea is to use the smallest number down, each time to determine whether another number is divisible; So instead of decrement each time, divide by 2, divide by 3… So to find. I know there’s a formula or something… But I really can’t remember);
  2. String to int, do not use the existing method, also cannot be strong. Asked about other requirements, such as +- signs and so on, and characters that are not numbers return error, etc. What if the value of an int exceeds the maximum value (214.. What? I don’t know. I usually use integer.max_value). CharAt (index) – ‘0’, but the hexadecimal 0x was not considered in the end);
  3. X to the n, we know we can use n times n minus 1 factorial. Let’s do it, but there’s no better way. (OK, hand tear paper, just saw it a couple of days ago, first check if x, n is negative, 0, etc., then change n to base 2, by &1 and right shift);
  4. Given a binary tree, how do YOU get a mirror image of the tree? (simple topic, talked about the idea, recursion, left and right symmetry is good);
  5. 01 Backpack (OK, the paper is torn, DP, I haven’t written it for a long time and I’m not familiar with it. I found I was wrong to write it in one dimension at the beginning, but later I changed it to two dimensions);
  6. Give a tree and determine if it’s BST. MAX_VALUE and integer. MIN_VALUE are recursively updated to the left by Max and recursively updated to the right by min. The interviewer drew a picture on a piece of paper, saying it was the first time I had seen this method, but it didn’t seem to be wrong.
  7. Say two nlogn complexity sorting methods, measure the three dimensions of the algorithm? Is the fast row stable? How to choose fast row reference point? (This is # 6, I thought stability meant stability in complexity, but I was reminded by the interviewer that I had misunderstood… So think of a time to write the stability of instability is also wrong);
  8. In my mind, there are some topics for me to talk about, but I can’t remember them.

Algorithm summary:

Writing on the paper still feels different from the usual time when I do it by myself. I am in a hurry and start writing without careful thinking, which makes it very ugly to cross out the wrong things. Besides, I don’t check the code after writing, and I don’t give much consideration to some special situations. Mainly because the interviewer is beside, embarrassed to keep him waiting, always want to finish writing as soon as possible. Fortunately, the interviewer was nice and not too harsh, otherwise I would have hated the little details.

Other topics :(say what comes to mind, completely out of order)

  1. Can you speak any other languages? (Hardly)
  2. The project is Windows, right? Not web (right);
  3. Have you ever written a Web project? (Recently I wrote a little bit, using Spring Boot);
  4. Project size (two to three people);
  5. Somebody’s on the front end, right (yeah);
  6. Is the database using MySQL? (Yeah) So what do you normally write in a database? How to delete a row if you want to;
  7. What is the feel of the game? Can you describe it in numbers?
  8. What does FPS mean? (Frame) What is a frame? Do you really understand what an FPS is? (I thought about it for a second, um… FPS is the higher the better. FPS is the number of frames per second, and when large enough, it looks consistent to the naked eye.
  9. Have you read any source code? (read only some Java source code) such as what (HashMap, I want you to ask me so that I can talk about it, but the interviewer may not be familiar with this, so they did not continue to ask);
  10. I can’t remember a lot more.

In short, it was a very good experience, netease food is also very good, is to eat seats feel a little crowded. There was a bit of cooling yesterday, wearing a shirt I shivered…..