Description
Welcome to one of the unique and special Coding Interviews courses.
This course is all about algorithmic problem-solving for problems mainly from the Leetcode website. Specifically, the medium level frequent interview problems. The goal of this course is to sharpen your problem-solving skills to aid you in ACEing Coding Interviews from FAANG companies. During the course, you won’t only be provided with a problem and its solution, but a series of hints and thinking approaches to tackle the problems.
I don’t teach data structures or algorithms in this course. You must study these courses from high-quality sources and solve many problems to gain basic problem-solving skills. The problems in this course are of medium level. Without proper background and skills, the materials will be hard to learn.
Part 1 content
-
Part one covers the data structures:
-
Arrays: Prefix Sum, Sliding Window (fixed and variable size) 2 Pointers, and Permutations.
-
Tutorials are provided for these topics only, as they are not covered in DSA courses.
-
-
String
-
Matrices
-
Stack and Priority Queue
-
Linked List and Binary Trees
-
Hash Tables
-
-
The scope of the topics: Interviews coverage.
-
Note: You are expected to solve the implementation problems over these topics during a data structure course. For example, reversing a linked list is a common interview question. I won’t cover it. It is mainly an implementation task. The same for the basic binary tree DFS problems. I do cover such questions in my data structure and algorithms course. This course is about problem-solving challenges.
-
-
Although the focus of this part is Data Structures, but still your background in Algorithms is needed.
-
Major: Complexity, Recursion and Sorting
-
Minor: A few times I refer to: Binary Search, Divide and Conquer and Dynamic Programming
-
Generally, most of the problems require serious algorithmic skills
-
The course level:
-
Most of the problems in this course are Leetcode MEDIUM level, which represent 85-90% of real interview questions.
-
To be more effective, the questions are mainly the most frequent interview questions according to the LeetCode website.
-
This means; in addition to gaining problem-solving skills, you increase the chance of meeting problems you already solved in the interviews!
-
Without proper background & skills ⇒ the course will be hard to learn
Prerequisites:
-
Strong programming skills & DSA knowledge/skills (from 3 courses)
-
A high-quality programming course consisting of:
-
Good coverage for programming + many exercises on learned topics
-
Proper understanding/using for built-in algorithms/DS (e.g. C++ STL / Java Collections)
-
Optional: Several projects to be comfortable with long coding
-
-
A high-Quality Data Structure course: good coverage + many exercises
-
A high-Quality Algorithms course: good coverage + many exercises
-
This implies: you already solved and coded a lot. It is time to move to medium challenges.
-
Don’t join this course if you lack basic problem-solving skills
-
-
The course programming language
-
All slides codes are based on C++
-
Mainly C++11. I intend to not use the very modern C++
-
Many people don’t study after C++11
-
It will be easier for other programming languages to understand the code
-
-
C++ code is very similar to Java and C#. To a good extent, similar to JavaScript.
-
-
The LeetCode discussion tab has solutions for many other languages
-
80% of the problems: I will download solutions for some other languages (Python, Java) .
-
No promise, but some downloads for JavaScript and a few C#
-
As the code is downloaded, expect differences in the code structure. You must understand fully the lecture first.
-
-
The course natural language:
-
The course is only in English with an Egyptian accent
-
English subtitles are provided to make it easy in case. it is easy to adapt the Egyptian accent
Videos problem-solving cycle:
-
Presenting a problem
-
Verifying assumptions and test cases
-
Trying to brute-force the problem
-
Optimizing the brute force if possible
-
Or analyzing the problem and test cases
-
Several iterative hints are provided; a missing educational key in other resources
-
Well-written codes.
2 training styles are possible with the materials.
-
A topics-based style where you focus on a specific topic and solving many of its problems. This style has a great disadvantage; you know the solution category (e.g. a stack problem), which is a big hint.
-
A blind-based style where sprints of problems are provided. Each sprint is 10 problems to solve.
-
You don’t know the category of the problem.
-
This is a more matching experience to the real interviews experience.
-
This style is the recommended one.
-
-
After the course, you will be provided with more problems to solve on your own to keep enhancing your skills.
-
You must solve a lot to increase your chance of passing the interviews.
-
A problem name starts with
-
E for easy-level from 1 to 3
-
M for medium-level from 4 to 7
-
H for hard-level from 8 to 10
Acknowledgement: “I’d like to extend my gratitude towards Robert Bogan for his help with proofreading the slides for this course”
If the coupon is not opening, disable Adblock, or try another browser.