127,870 views
Practice interviewing: https://clck.ru/3ASssc Programming courses: https://clck.ru/3ASt6y Mock interview from Team Lead from the Yandex algorithmic section on the it-interview.io platform. Practice interviewing developers from leading companies and get detailed feedback on what salary and grade you can expect, or what you still need to work on! Vladimir's YouTube channel: / @vladimir_balun_programming Vladislav's LinkedIn: / vladislav-berezovskiy-3bb0bb193 Timestamps: 00:00 - Introduction 00:07 - Discussion of the solution to the first task 04:05 - Assessment of the complexity of the solution to the first task 06:13 - Implementation of the solution to the first task 12:17 - Testing the solution to the first task 17:08 - Discussion of the solution to the second task 25:07 - Assessment of the complexity of the solution to the second task 26:54 - Implementation of the solution to the second task 30:55 - Testing the solution to the second task 35:11 - Feedback on the interview [[ Feedback on the candidate ]] Recommend this person for the next stage? YES What were their technical skills? 4/5 What were their problem-solving abilities? 5/5 What were their communication skills? 5/5 During the interview, he solved two problems: Merge Intervals and Longest Substring Without Repeating Characters. The candidate is excellent at coming up with solutions to problems, and then implements them well (allows a few bugs, which he then successfully finds himself). He writes clean and understandable code, and is very familiar with the language (he wrote code quickly in Go - no difficulties arose). He can estimate the complexity of solving problems, but is not confident, since he makes small errors in estimates. He can test code, but does not take into account all test cases. He is pleasant to talk to, and it was comfortable to talk to the candidate. Merge Intervals - he immediately asked a question about the order of intervals, and after my answer, he immediately sorted the intervals by the beginning of the interval (he decided to ignore the coinciding beginnings of intervals - he said that they would merge during the pass). He told me what sorting algorithm would be used. He took into account the case that intervals with the same end and beginning would have to merge. Regarding the complexity assessment, I made a mistake at first and said that the time complexity would be O(n), but then I remembered about sorting and estimated the time and memory complexity correctly. During the implementation, I suggested adding the first interval to the final array right away (this simplified the code). I wrote the solution pretty quickly, but ultimately submitted it with an error. I suggested the candidate generate test cases that he would use to test his code, but the test cases did not cover all the basic cases (I had to prompt him). After that, I realized that the error in the code would be related to an empty slice interval, but I found the problematic place in the code myself, not the first time. As a result, the solution to the problem took 19 minutes, the code turned out to be clean and concise. Longest Substring Without Repeating Characters - the candidate immediately suggested using a floating window to solve the problem, but at first with a non-optimal search for duplicates in the substring (then he himself explained how this solution could be improved). Regarding the complexity assessment - he calculated the complexity by time correctly, but got confused with the complexity by memory (he said that it was O(n), but when I told him that the alphabet was limited, he named the correct complexity). Before the implementation, he did not specify anything about the character register, but during the implementation he asked about the encodings - would there really only be ASCII characters. He wrote the solution fairly quickly, but ultimately submitted it with an error. I suggested that the candidate generate test cases that he would use to test his code. He found the problem in the generated test cases and fixed it himself, then there were still errors left due to carelessness, which I pointed out to him. As a result, the solution to the problem took 22 minutes, the code turned out to be clean, but with one extra condition. I suggested that the candidate simplify the code - he successfully coped with this. To the additional question about what is the maximum possible length of a substring without duplicates - he answered correctly. Recommendations for the candidate: I would advise paying attention to code testing, namely, selecting test cases that will cover most cases of a particular solution (since not all basic cases were covered in the first task). You should also practice a little more with assessing the complexity of certain solutions (since in both tasks there was a certain uncertainty in the answers and small errors in the estimates). Well, and additionally do not forget to devote a little more time to the requirements for