Experience of doing Blind75

About 2 weeks ago I set a goal to finish Blind75, as a practice for an interview, as well as, a personal challenge to see how prepared I am for “weird” algo questions.

Categories

I would personally categorize these questions into 2 parts. Questions you can answer after putting some thought into it. And questions that are impossible to answer, unless you are from a competitive programming background or already know the method.

Imagine having 30 min to implement Word Search II in an interview! bummer! I guess you fail!

The Blind75 itself separate the categories roughly based on the algorithm behind it. So for the sake of staying true to the origin, I’m going to talk about them based on those categories as well.

Array

Arguably the most fun part of this practice since most of the algorithm used were either something I have seen before, or is something that I can eventually figure out. There were a few questions inside the list that challenged me, and I probably spent a few hours more than I should have on them. But at the end of the day, array was definitely a good category.

Binary

Simple and quick. Nothing much to say about this category. Questions were pretty straightforward, and I learned a few technique from these questions

Tree & Graph

Another fun category in the list. I personally don’t have a good relation with Trees and Graphs. In the past I have faced interviews asking me to implement red-black tree in a 30 min interview that left a sour taste in my mouth. But, the questions picked for this list were pretty interesting. There were questions that I hated (Hi Pacific Atlantic Water Flow question! I’m looking at you) and questions that I loved (Maximum Path Sum, Serialize and Deserialize the Tree) and I learned a lot from these 2 categories.

String

String manipulation is usually interviewers most favorite part! And I belive one of the reasons I can’t really relate to them, is due to not having a first hand experience with string manipulation. During all my years as a software engineer, I never had to face anagrams, palindromes, and substring problems in real life. So this chapter was a great help with all the new algorithms that I ended up learning. But if I had to pick one question as my top pick, it would definitely be Encode and Decode of Strings.

Intervals

Basically the same question, but written in 10 different ways :laughing_emoji!

Matrix

I loved every question in the matrix section (shocking! right? it’s not like I’m into Daniel Shiffman’s videos). Spiral Matrix reminded me of Ulam spiral activity I did in unity years ago, and Set Matrix Zeroes was a fun improvement exercise. Taking the solution from O(mn) to O(m+n), and eventually to O(1) space was a pleasure indeed.

Dynamic Programming

So there is a reason I left DP for last. well, I hate it! Not the idea of DP, that’s fine for sure. But trying to find the small solution and using that to get the correct solution is literally a pain in the butt! I don’t think in a live interview, with the pressure of the interview I can think of this on my own!

Would I recommend Blind75?

Hell yeah! It was definitely a fun challenge, and a good practice. I’m thinking of doing the Grind 75, which is the next version of Blind 75 as well when I have some free time.