600 problems in one year
42694

I wanted to share with you my progess in one year. My first submission to Lettcode was one year ago, when I got invitation to Google's phone interview. My friends suggested me to start solving the problems from leetcode, since, majority of the problems will be similar to them. I prepared for 1.5 month and failed that interview. After that I realized my level is not as good as needed and decided to solve more problems from Leetcode.

Initially, I was planning to prepare one year and solve 1000 problems. However, I was able to solve only 600 problems. First, I start solving the easy problems only. Then, slightly I switched to medium problems. Now, I solve only medium problems. In future, I would like to solve only hard problems (refer to Fig. below for distribution of easy / medium / hard problems that I have solved)

image

In one year period of time, I got so many rejections from different companies, but, I realized that my level in algorithms and data structure is really grew up. I was planning to spend 1-3 hours every day and throughout the year I was tracking my results. From the following figures you can see, some of the statistics of my preparation.

I spend 231 hours in one year and solved 691 problems, where 91 problems were from CodeForces and 600 from LeetCode. So, I can conclude that in average I solved 691 / 231 = 3 problem per hour. From the figure below you can see the days that I spend in one year (total 1521 submissions) and submission intensity for each day.

image

After 4-6 weeks I did small report for my self where I count the number of hours that I spend and the number of problems that I solved.

image

At the same time, I was watching the theoretical lectures related to algorithms / data structure, Machine Learning (ML) and Computer Vision (CV). In a total, I spend 38 hours for listeing theoretical lectures (refer to Fig. below), where 45% was related to ML and 44% to algorithms and data structure. After listening the certain lectures, I wrote to my note how many hours I spend for listeing.

image

But, my lovely friends told me that interview preparation is not about how many problems you solve, but, also how fast you solve. Then, I start to track the time for thinking / finding the solution and the time for implementation. I did for myself the table where I wrote the problem topic (first column), problem difficulty (second column), time to find a solution (third column), time for implementation (fourth column) and status (last column). The status could be solved or not solved, based on that I have colored the solved problems with green and not solved problems with red. The problems that I solved with hints, I have colored with dark green (refer to Fig. below).

image

At the end, when I calculated the average time and I found that I spend 3.13 minutes to solve the medium problems in my mind and 12.5 minutes to implement them. For the easy problems, I spend 1.06 minutes to solve them (easy problems) in my mind and 5.89 minutes to implement them. For the hard problems, it is 9 minutes to solve them (hard problems) in my mind and 40 minutes to implement them.

After that my friends adviced to me to do more mock interviews. I found the service *** and did only 13 interviews there (total 10.75 hours). I also track all my performance in ***, where I pay attention to whether 1) my idea was correct 2) did I able to implement it 3) my solution passed all test cases. In 76% of all my interviews in *** my idea and solution was correct. In 75% of all my interviews I have implemented the solutions that I found and in 69% of all my interviews in *** my solution passed all test cases. The following topicc usually came to me in *** interviews.

image

Nowadays, I am still solving the problems, but, not so frequently as I did before. However, now, I am paying more my attention to behavioural questions.

Let's see what will be happen in future and whether I will be able to get in one of the FANG companies :)

Comments (88)