An Intermediate Data Structures and Algorithms Study Plan | by Michael Faber | Mar, 2022

A Concise List of Problems for Software Engineers Familiar with DSA.

Photo by Pankaj Patel on Unsplash

LeetCode, with its 2000+ problems, can be very intimidating. I love the idea of ​​cultivating lists of at most 10 questions that cover a wide range of topics and famous interview and computer science questions. This is a follow up to my article, A Beginner’s Data Structures and Algorithms Study Plan. I recommend taking a look at that first, if you haven’t already.

Topics Covered: Linked Lists
LeetCode Link

I’ll admit — I don’t like Linked Lists problems. A lot of interviewers do though, unfortunately.

This problem is good as an introduction to moving elements around in a Linked List.

Topics Covered: Arrays, Dynamic Programming
LeetCode Link

You’re going to find a lot of problems that involve “an optimal path” in some shape or form. Something to consider when approaching any “optimal path” problem: can the optimal path be found without checking every possible path?

Topics Covered: Linked Lists
LeetCode Link

A solid Linked List problem. If you’re like me and Linked Lists don’t resonate with you, this might be your least favorite in this article.

Can you solve this without creating a new Linked List?

Topics Covered: Hash Table, Sorting, Strings
LeetCode Link

One of my favorites on LeetCode that combines three major data structures and algorithms concepts commonly found in interviews. It’s definitely worth your time to take it slow with this one and understand it deeply.

Topics Covered: Linked Lists
LeetCode Link

Another solid Linked List question. Not as difficult as the others in this article.

Topics Covered: Arrays, Binary Search
LeetCode Link

There is a very trivial O(n) time complexity solution to this problem. The challenge is to solve this in O(log n) time.

When I see O(log n) time, my mind jumps to “binary search.” In my beginner article, I said, “Binary Search is a fundamental computer science concept that extends far beyond just an array of numbers.”

Okay — well this might still be an array of numbers, but it’s an interesting binary search problem considering the array is not sorted and you’re not looking for a specific element.

Topics Covered: Hash Table, Linked Lists, Two Pointers
LeetCode Link

Another solid Linked List problem. The last in this article, fortunately.

You want to make sure you’ve solved the Linked List Cycle I and understand the solution before you attempt this one.

Topics Covered: Array, Matrix
LeetCode Link

This is not a wordle. Unfortunately, it’s another variant of “find the optimal path.” Remember to be “greedy” in your approach to these problems — “can I find the optimal path without checking every possible path?”

Topics Covered: Arrays, Hash Table, Matrix
LeetCode Link

Don’t worry, this isn’t a problem where you solve Sudoku puzzles. My advice for this one is don’t get fancy right off the bat. Start with a valid solution, regardless of how trivial and poorly optimized it is, and go from there.

Topics Covered: Math
LeetCode Link

I love this problem. I’ve written before about mathematics in software engineering, and this is one of the many cases where a little bit of math goes a long way.

I loved this problem so much I actually wrote an article about it, if you get stuck.

Leave a Comment