Skip to content

Instantly share code, notes, and snippets.

@tykurtz
Last active April 19, 2024 01:54
Show Gist options
  • Save tykurtz/3548a31f673588c05c89f9ca42067bc4 to your computer and use it in GitHub Desktop.
Save tykurtz/3548a31f673588c05c89f9ca42067bc4 to your computer and use it in GitHub Desktop.
Grokking the coding interview equivalent leetcode problems

GROKKING NOTES

I liked the way Grokking the coding interview organized problems into learnable patterns. However, the course is expensive and the majority of the time the problems are copy-pasted from leetcode. As the explanations on leetcode are usually just as good, the course really boils down to being a glorified curated list of leetcode problems.

So below I made a list of leetcode problems that are as close to grokking problems as possible.

Pattern: Sliding Window

Pattern: Two Pointers

Pattern: Fast & Slow pointers

Pattern: Merge Intervals

Pattern: Cyclic Sort

Pattern: In-place Reversal of a LinkedList

Pattern: Tree Breadth First Search

Pattern: Tree Depth First Search

Pattern: Two Heaps

Pattern: Subsets

Pattern: Modified Binary Search

Pattern: Bitwise XOR

Pattern: Top 'K' elements

Pattern: K-way merge

Pattern: 0/1 Knapsack

Pattern: Topological Sort

Misc

@rwalle61
Copy link

rwalle61 commented Mar 11, 2022

Thanks for the list!

I think Pattern: Two Pointers first grok question "Pair with Target Sum" is more like Two Sum II than Two Sum because the input is sorted. In Two Sum, the input is not sorted, so a Two Pointer solution (sort first) is slower than the O(N) caching solution. In Two Sum II, the input is sorted, and we're can't use extra space, so the Two Pointer solution makes sense

image

image

image

@tonyz0212
Copy link

Awesome list!

@mayafrog
Copy link

Under Pattern: Two Pointers https://leetcode.com/problems/subarray-product-less-than-k/ is a sliding window problem, a bit confusing when trying to study by topic

Sliding window is only valid if all the values are positive I think.

@khatiba
Copy link

khatiba commented Apr 25, 2022

For 0/1 Knapsack: Minimum Subset Sum Difference: https://leetcode.com/problems/partition-array-into-two-arrays-to-minimize-sum-difference/
Maybe a significant difference is that the array lengths should be len(nums)/2 🤷

@Loc-t-h
Copy link

Loc-t-h commented May 3, 2022

thanks for this.

@AntonBelski
Copy link

Last problem for Pattern: Modified Binary Search similar to this - https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/

@ShreyanGoswami
Copy link

Missing problem for Modified Binary Search is similar to https://leetcode.com/problems/closest-binary-search-tree-value/

@necusjz
Copy link

necusjz commented Jun 13, 2022

For Pattern: Merge Intervals, I think this is the missing problem: Array Manipulation (Hacker Rank)

Nice catch! The corresponding problem in LeetCode should be https://leetcode.com/problems/corporate-flight-bookings/

@parth-pandeyy
Copy link

Thanks for sharing!

@shazib2022skipq
Copy link

Thanks a lot.

@dyu222
Copy link

dyu222 commented Jul 30, 2022

^^ here is the first problem is islands https://leetcode.com/problems/number-of-islands/

@shankiyani
Copy link

Merge Intervals is missing a problem: Conflicting Appointments (medium) -> https://leetcode.com/problems/meeting-rooms/

@shankiyani
Copy link

Not an exact match but close enough.

Ceiling of a Number (medium) -> https://leetcode.com/problems/search-insert-position/

@khatiba
Copy link

khatiba commented Aug 3, 2022

@i-zanis topological orderings are not unique right?

@swarnabhK
Copy link

Thanks for the list! Can anyone point me out to some resources where I can learn these patterns?

@unrelentingfox
Copy link

unrelentingfox commented Aug 4, 2022

The topological sort 1st and 3rd question is exactly the same as a solution in Grokking. I converted the List to return int[] instead however when I test it on leetcode, the output is not in the same order. Does anyone know something?

The direction of the dependency graph in the leetcode problem is in reverse. For each edge, the first value is a course, the second value is it's pre-requisite. To determine the order in which to take all of the courses, you traverse from pre-requisite -> course.

So from your code change this:
int parent = edges[i][0], child = edges[i][1]
to this:
int parent = edges[i][1], child = edges[i][0]

@ayushjainid
Copy link

Not all heroes..

@shankiyani
Copy link

For Tree BST (right after zig zag) should be https://leetcode.com/problems/average-of-levels-in-binary-tree/

@i-zanis
Copy link

i-zanis commented Aug 14, 2022

Anyone found any other problems in the Islands?

@vinit2997
Copy link

Is there a Leetcode list of all these questions?

@AnasjSaad
Copy link

Great List, thank you!

@himnish0
Copy link

https://libgen.is/search.php?req=grokking+the+coding+interview&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def

(grokking the coding interview course ---> zip file link ---> use "7-zip" to extract after downloading)

If link isn't working , then go to libgen (generally libgen.is) and search for the course there....the extracting method remains the same.

@shazib-summar
Copy link

https://libgen.is/search.php?req=grokking+the+coding+interview&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def

(grokking the coding interview course ---> zip file link ---> use "7-zip" to extract after downloading)

If link isn't working , then go to libgen (generally libgen.is) and search for the course there....the extracting method remains the same.

kinda feel bad for the authors, but thanks

@thrownullpointer
Copy link

If you feel bad for the author pay $79 for lifetime access. There is a 20% off coupon so its $63.20. https://designgurus.org/course/grokking-the-coding-interview

@newpain01
Copy link

https://libgen.is/search.php?req=grokking+the+coding+interview&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def

(grokking the coding interview course ---> zip file link ---> use "7-zip" to extract after downloading)

If link isn't working , then go to libgen (generally libgen.is) and search for the course there....the extracting method remains the same.

This is awesome, thanks!
Have you seen the system design interview somewhere?

@himnish0
Copy link

https://libgen.is/search.php?req=grokking+the+coding+interview&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def
(grokking the coding interview course ---> zip file link ---> use "7-zip" to extract after downloading)
If link isn't working , then go to libgen (generally libgen.is) and search for the course there....the extracting method remains the same.

This is awesome, thanks! Have you seen the system design interview somewhere?

No but if you do, kindly share.

@newpain01
Copy link

https://libgen.is/search.php?req=grokking+the+coding+interview&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def
(grokking the coding interview course ---> zip file link ---> use "7-zip" to extract after downloading)
If link isn't working , then go to libgen (generally libgen.is) and search for the course there....the extracting method remains the same.

This is awesome, thanks! Have you seen the system design interview somewhere?

No but if you do, kindly share.

I found this: https://github.com/donnemartin/system-design-primer
Some people mentioned it's inspired by grokking, but I wouldn't know.

@efie45
Copy link

efie45 commented Oct 21, 2022

Awesome list!

For Cyclic Sort, you have the last item in the list linked to https://leetcode.com/problems/kth-missing-positive-number/ which is not correct.

The leetcode question has an array of sorted, positive numbers and you are looking for the kth missing positive. This is an LC easy and you don't even need cyclic sort since the numbers are already sorted.

The grokking question is an unsorted array containing both positive and negative numbers, possibly duplicate values, and you are finding all values from 1-k. This is a LC hard (per grokking)

@navidre
Copy link

navidre commented Nov 8, 2022

There is a new grokking course on Educative. I am creating a new mapping. Pull requests are appreciated. Link: https://github.com/navidre/new_grokking_to_leetcode

@AhmedAzor
Copy link

letss goo

@JunYuHuang
Copy link

JunYuHuang commented Nov 17, 2022

If you feel bad for the author pay $79 for lifetime access. There is a 20% off coupon so its $63.20. https://designgurus.org/course/grokking-the-coding-interview

I bought the course a couple months ago for full price and all I can say is that I regret buying it and feel it was a waste of money. For how much it costs for what is basically a curated LeetCode problem set with solutions, a significant amount of the solutions don't offer much in depth or detailed explanation and some of the solutions fail to pass their closest LC equivalent problems. I've found better solution explanations and help from looking on the Discuss page of those LC problems and watching NeetCode's video solutions.

@lamquangtruongnguyen
Copy link

Thanks for sharing

@alanacevedo
Copy link

Thanks

@branden-floris
Copy link

Hi,

I do see a couple of new patterns in the Grokking the Coding Interview: https://www.designgurus.io/course/grokking-the-coding-interview

Backtracking: https://www.designgurus.io/course-play/grokking-the-coding-interview/doc/63d3bcd7f81b8e2fe5ded81c
Multi-threaded: https://www.designgurus.io/course-play/grokking-the-coding-interview/doc/63a5ce68923d029fb1c4b4ec

Does anyone have the list of equivalent LC questions, especially under Multi-threaded?

@dhan206
Copy link

dhan206 commented Jun 27, 2023

@dhan206
Copy link

dhan206 commented Aug 23, 2023

@dhan206
Copy link

dhan206 commented Aug 28, 2023

@khemtwt11
Copy link

Thanks to everyone.

@DeveshKrishan
Copy link

You're the goat!

@HassanQayyum1993
Copy link

Hi, Is it legal to share this course notes on GitHub?

@iamk-shubh
Copy link

@i-zanis topological orderings are not unique right?

yes .. they may vary

@anand27
Copy link

anand27 commented Dec 9, 2023

can someone share the updated list ?

@navidre
Copy link

navidre commented Jan 5, 2024

I built this GPT for personalized mock interviews. Any programming language. With detailed feedback. Needs ChatGPT Plus for now: https://chat.openai.com/g/g-ngDadz7qM-mock-interviewer

@LeetStream
Copy link

https://leetstream.github.io/
It offers daily LeetCode problems categorized under 26 patterns, shuffled to ensure spaced repetition across different coding patterns.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment