{"id":25761420,"url":"https://github.com/teimurjan/educative-grokking-coding-interview","last_synced_at":"2025-07-30T10:34:10.021Z","repository":{"id":94558404,"uuid":"383688079","full_name":"teimurjan/educative-grokking-coding-interview","owner":"teimurjan","description":"Solutions for Grokking the Coding Interview: Patterns for Coding Question in JavaScript.","archived":false,"fork":false,"pushed_at":"2021-11-05T12:43:08.000Z","size":10584,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-07T08:03:54.157Z","etag":null,"topics":["algorithms","data-structures","interview-preparation"],"latest_commit_sha":null,"homepage":"https://www.educative.io/courses/grokking-the-coding-interview","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teimurjan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-07T05:51:27.000Z","updated_at":"2024-02-08T10:30:49.000Z","dependencies_parsed_at":"2023-07-28T13:01:33.979Z","dependency_job_id":null,"html_url":"https://github.com/teimurjan/educative-grokking-coding-interview","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/teimurjan/educative-grokking-coding-interview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teimurjan%2Feducative-grokking-coding-interview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teimurjan%2Feducative-grokking-coding-interview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teimurjan%2Feducative-grokking-coding-interview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teimurjan%2Feducative-grokking-coding-interview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teimurjan","download_url":"https://codeload.github.com/teimurjan/educative-grokking-coding-interview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teimurjan%2Feducative-grokking-coding-interview/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267850819,"owners_count":24154505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","data-structures","interview-preparation"],"created_at":"2025-02-26T18:34:59.733Z","updated_at":"2025-07-30T10:34:10.012Z","avatar_url":"https://github.com/teimurjan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![main workflow](https://github.com/teimurjan/educative-grokking-coding-interview/actions/workflows/main.yml/badge.svg)\n\n# About\n\nThis repository contains solutions for [Grokking the Coding Interview: Patterns for Coding Question](https://www.educative.io/courses/grokking-the-coding-interview) from https://educative.io.\n\n# Get started\n\n## Install dependencies\n\nThe problems are solved without any external dependency (required data structures and helper functions lay in [the utils folder](/src/utils/index.js)). The project uses `jest` and `prettier` only to have smooth development.\n\n```sh\nnpm install\n```\n\n## Run tests\n\n```sh\nnpm test\n```\n\n# Problems\n\n## Cyclic Sort\n\n* [Cyclic Sort](/src/patterns/cyclic-sort/cyclic-sort/cyclic-sort.js)\n* [Find All Duplicate Numbers](/src/patterns/cyclic-sort/find-all-duplicate-numbers/find-all-duplicate-numbers.js)\n* [Find All Missing Numbers](/src/patterns/cyclic-sort/find-all-missing-numbers/find-all-missing-numbers.js)\n* [Find The Corrupt Pair](/src/patterns/cyclic-sort/find-the-corrupt-pair/find-the-corrupt-pair.js)\n* [Find The Duplicate Number](/src/patterns/cyclic-sort/find-the-duplicate-number/find-the-duplicate-number.js)\n* [Find The Missing Number](/src/patterns/cyclic-sort/find-the-missing-number/find-the-missing-number.js)\n* [Find The Smallest Missing Positive Number](/src/patterns/cyclic-sort/find-the-smallest-missing-positive-number/find-the-smallest-missing-positive-number.js)\n\n## Fast And Slow Pointers\n\n* [Happy Number](/src/patterns/fast-and-slow-pointers/happy-number/happy-number.js)\n* [Linked List Cycle](/src/patterns/fast-and-slow-pointers/linked-list-cycle/linked-list-cycle.js)\n* [Middle Of Linked List](/src/patterns/fast-and-slow-pointers/middle-of-linked-list/middle-of-linked-list.js)\n* [Palindorme Linked List](/src/patterns/fast-and-slow-pointers/palindorme-linked-list/palindorme-linked-list.js)\n* [Start Of Linked List Cycle](/src/patterns/fast-and-slow-pointers/start-of-linked-list-cycle/start-of-linked-list-cycle.js)\n\n## In Place Linked List Reversal\n\n* [Reverse Every Kth Sub List](/src/patterns/in-place-linked-list-reversal/reverse-every-kth-sub-list/reverse-every-kth-sub-list.js)\n* [Reverse Linked List](/src/patterns/in-place-linked-list-reversal/reverse-linked-list/reverse-linked-list.js)\n* [Reverse Linked List Recursively](/src/patterns/in-place-linked-list-reversal/reverse-linked-list-recursively/reverse-linked-list-recursively.js)\n* [Reverse Sub List](/src/patterns/in-place-linked-list-reversal/reverse-sub-list/reverse-sub-list.js)\n\n## Merge Intervals\n\n* [Conflicting Appointments](/src/patterns/merge-intervals/conflicting-appointments/conflicting-appointments.js)\n* [Insert Interval](/src/patterns/merge-intervals/insert-interval/insert-interval.js)\n* [Intervals Intersection](/src/patterns/merge-intervals/intervals-intersection/intervals-intersection.js)\n* [Merge Intervals](/src/patterns/merge-intervals/merge-intervals/merge-intervals.js)\n* [Minimum Meeting Rooms](/src/patterns/merge-intervals/minimum-meeting-rooms/minimum-meeting-rooms.js)\n\n## Sliding Window\n\n* [Fruits Into Basket](/src/patterns/sliding-window/fruits-into-basket/fruits-into-basket.js)\n* [Longest Subarray With Ones After Replacement](/src/patterns/sliding-window/longest-subarray-with-ones-after-replacement/longest-subarray-with-ones-after-replacement.js)\n* [Longest Substring After Replacement](/src/patterns/sliding-window/longest-substring-after-replacement/longest-substring-after-replacement.js)\n* [Longest Substring With K Distinct Chars](/src/patterns/sliding-window/longest-substring-with-k-distinct-chars/longest-substring-with-k-distinct-chars.js)\n* [Max Sum Subarray](/src/patterns/sliding-window/max-sum-subarray/max-sum-subarray.js)\n* [No Repeat Substring](/src/patterns/sliding-window/no-repeat-substring/no-repeat-substring.js)\n* [Permutation In A String](/src/patterns/sliding-window/permutation-in-a-string/permutation-in-a-string.js)\n* [Smallest Subarray With A Given Sum](/src/patterns/sliding-window/smallest-subarray-with-a-given-sum/smallest-subarray-with-a-given-sum.js)\n\n## Tree Breadth First Search\n\n* [Binary Tree Level Order Traversal](/src/patterns/tree-breadth-first-search/binary-tree-level-order-traversal/binary-tree-level-order-traversal.js)\n* [Connect All Level Order Siblings](/src/patterns/tree-breadth-first-search/connect-all-level-order-siblings/connect-all-level-order-siblings.js)\n* [Connect Level Order Siblings](/src/patterns/tree-breadth-first-search/connect-level-order-siblings/connect-level-order-siblings.js)\n* [Level Averages In Binary Tree](/src/patterns/tree-breadth-first-search/level-averages-in-binary-tree/level-averages-in-binary-tree.js)\n* [Level Order Successor](/src/patterns/tree-breadth-first-search/level-order-successor/level-order-successor.js)\n* [Minimum Depth Of Binary Tree](/src/patterns/tree-breadth-first-search/minimum-depth-of-binary-tree/minimum-depth-of-binary-tree.js)\n* [Reverse Level Order Traversal](/src/patterns/tree-breadth-first-search/reverse-level-order-traversal/reverse-level-order-traversal.js)\n* [Zigzag Traversal](/src/patterns/tree-breadth-first-search/zigzag-traversal/zigzag-traversal.js)\n\n## Tree Depth First Search\n\n* [All Paths For A Sum](/src/patterns/tree-depth-first-search/all-paths-for-a-sum/all-paths-for-a-sum.js)\n* [Binary Tree Path Sum](/src/patterns/tree-depth-first-search/binary-tree-path-sum/binary-tree-path-sum.js)\n* [Path With Given Sequence](/src/patterns/tree-depth-first-search/path-with-given-sequence/path-with-given-sequence.js)\n* [Sum Of Path Numbers](/src/patterns/tree-depth-first-search/sum-of-path-numbers/sum-of-path-numbers.js)\n\n## Two Heaps\n\n* [Find The Median Of Number Stream](/src/patterns/two-heaps/find-the-median-of-number-stream/find-the-median-of-number-stream.js)\n* [Sliding Window Median](/src/patterns/two-heaps/sliding-window-median/sliding-window-median.js)\n\n## Two Pointers\n\n* [Dutch National Flag Problem](/src/patterns/two-pointers/dutch-national-flag-problem/dutch-national-flag-problem.js)\n* [Pair With Target Sum](/src/patterns/two-pointers/pair-with-target-sum/pair-with-target-sum.js)\n* [Remove Duplicates](/src/patterns/two-pointers/remove-duplicates/remove-duplicates.js)\n* [Squaring A Sorted Array](/src/patterns/two-pointers/squaring-a-sorted-array/squaring-a-sorted-array.js)\n* [Subarrays With Product Less Than Target](/src/patterns/two-pointers/subarrays-with-product-less-than-target/subarrays-with-product-less-than-target.js)\n* [Triplet Sum Close To Target](/src/patterns/two-pointers/triplet-sum-close-to-target/triplet-sum-close-to-target.js)\n* [Triplet Sum To Zero](/src/patterns/two-pointers/triplet-sum-to-zero/triplet-sum-to-zero.js)\n* [Triplets With Smaller Sum](/src/patterns/two-pointers/triplets-with-smaller-sum/triplets-with-smaller-sum.js)\n\n  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteimurjan%2Feducative-grokking-coding-interview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteimurjan%2Feducative-grokking-coding-interview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteimurjan%2Feducative-grokking-coding-interview/lists"}