Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
The Only Algorithms Coding Interview Course You'll Ever Need
Rating: 4.8 out of 5(14 ratings)
2,971 students

The Only Algorithms Coding Interview Course You'll Ever Need

Compiled list of Leetcode questions to Ace your Next Interview
Last updated 11/2023
English

What you'll learn

  • Master problem-solving with various data structures and algorithms, tackling challenges from easy to hard.
  • Develop proficiency in addressing classical coding interview questions.
  • Learn the art of breaking down interview problems systematically.
  • Enhance your problem-solving skills through practical application.

Course content

10 sections10 lectures1h 45m total length
  • Introduction4:59

    1. Do I really understand the problem?

    • What exactly does the input consist of?

    • What exactly are the desired results or output?

    • Can I construct an input example small enough to solve by hand? What happens when I try to solve it?

    • How large is a typical instance of my problem? Will I be working on 10 items? 1,000 items? 1,000,000 items?

    • Am I trying to solve a numerical problem? A graph algorithm problem? A geometric problem? A string problem? A set problem? Which formulation seems easiest?

    2. Can I find a simple algorithm or heuristic for my problem?

    • Will brute force solve my problem correctly by searching through all subsets or arrangements and picking the best one?

      • If so, why am I sure that this algorithm always gives the correct answer?

      • How do I measure the quality of a solution once I construct it?

      • Does this simple, slow solution run in polynomial or exponential time? Is my problem small enough that this brute-force solution will suffice?

      • Am I certain that my problem is sufficiently well defined to actually have a correct solution?

    • Can I solve my problem by repeatedly trying some simple rule, like picking the biggest item first? The smallest item first? A random item first?

      • If so, on what types of inputs does this heuristic work well? Do these correspond to the data that might arise in my application?

      • On what types of inputs does this heuristic work badly? If no such examples can be found, can I show that it always works well?

      • How fast does my heuristic come up with an answer? Does it have a simple implementation?

    3 Are there special cases of the problem that I know how to solve?

    • Can I solve the problem efficiently when I ignore some of the input parameters?

    • Does the problem become easier to solve when I set some of the input parameters to trivial values, such as 0 or 1?

    • Can I simplify the problem to the point where I can solve it efficiently?

    • Why can’t this special-case algorithm be generalized to a wider class of inputs?

    4. Which of the standard algorithm design paradigms are most relevant to my problem?

    • Is there a set of items that can be sorted by size or some key? Does this sorted order make it easier to find the answer?

    • Is there a way to split the problem in two smaller problems, perhaps by doing a binary search? How about partitioning the elements into big and small, or left and right? Does this suggest a divide-and-conquer algorithm?

    • Do the input objects or desired solution have a natural left-to-right order, such as characters in a string, elements of a permutation, or leaves of a tree? Can I use dynamic programming to exploit this order?

    • Are there certain operations being done repeatedly, such as searching, or finding the largest/smallest element? Can I use a data structure to speed up these queries? What about a dictionary/hash table or a heap/priority queue?

    • Can I use random sampling to select which object to pick next? What about constructing many random configurations and picking the best one? Can I use some kind of directed randomness like simulated annealing to zoom in on the best solution?

    • Can I formulate my problem as a linear program? How about an integer program?

    • Does my problem seem something like satisfiability, the traveling salesman problem, or some other NP-complete problem? Might the problem be NP-complete and thus not have an efficient algorithm

Requirements

  • A basic understanding of essential data structures and algorithms is desirable.

Description

If you visit the Leetcode page now you will see that there are almost 3000 questions. No matter if you have 3 weeks or 3 or 6 months to prepare, solving 3000 questions seems impossible.

Quality over quantity! I solved hundreds of them while preparing for big tech interviews and I can say with confidence after certain number of questions we have diminishing returns. A good base of questions with patterns clearly explained is all you really need. As of now there are many lists online Blind 75, Prashad's leetcode patterns, curated list of problems from Elements of Programming.

I aggregated all problems from those lists and tips/tricks from the books in one free platform. Solving problems on this platform will make you prepared for any coding interview at most of the big tech companies. For each problem, we have description, written explanation with time/space complexity. All problems are solved using 4 different programming languages C++, Java, JavaScript and Python. For each problem we created a deep dive video going into details on how to solve the problem. As of this moment we have 17 categories with 200+ solved problems.


The platform is meant to be used following 4 simple steps:

  1. Start with any of the categories, and go from easy to hard level problems (sorted order)

  2. Read the problem, see if you can do it on your own, read the explanations and watch the video

  3. Try related problems and continue solving the problem in the selected category

  4. Retention phase, after 3 weeks randomly select a problem from the category you have already completed, solved the problem in your head. Basically just go through the pattern you would use, read the explanation of the solution

Who this course is for:

  • Those aiming to excel in technical coding interviews with companies such as Google, Facebook, Microsoft, Amazon, and more.