{"id":15137668,"url":"https://github.com/sudheerj/datastructures-algorithms","last_synced_at":"2025-05-15T20:01:01.846Z","repository":{"id":39604095,"uuid":"160812024","full_name":"sudheerj/datastructures-algorithms","owner":"sudheerj","description":"List of Programs related to data structures and algorithms","archived":false,"fork":false,"pushed_at":"2025-05-13T08:49:42.000Z","size":1722,"stargazers_count":575,"open_issues_count":0,"forks_count":168,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-13T09:41:15.788Z","etag":null,"topics":["algorithm-challenges","algorithms","datastructures","datastructures-algorithms","dsa","dsa-algorithm","dynamic-programming","graph","interview","java","javascript","leetcode","linkedlist","lodash","polyfills","prototype","queue","stack","tree"],"latest_commit_sha":null,"homepage":"","language":"Java","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/sudheerj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"github":["sudheerj"],"custom":"https://buymeacoffee.com/sudheerj"}},"created_at":"2018-12-07T10:56:26.000Z","updated_at":"2025-05-13T08:49:46.000Z","dependencies_parsed_at":"2023-11-21T07:23:28.155Z","dependency_job_id":"1a527dad-d4ea-4a93-85cc-9e4d3d68bfc4","html_url":"https://github.com/sudheerj/datastructures-algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudheerj%2Fdatastructures-algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudheerj%2Fdatastructures-algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudheerj%2Fdatastructures-algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudheerj%2Fdatastructures-algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sudheerj","download_url":"https://codeload.github.com/sudheerj/datastructures-algorithms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414457,"owners_count":22067263,"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","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":["algorithm-challenges","algorithms","datastructures","datastructures-algorithms","dsa","dsa-algorithm","dynamic-programming","graph","interview","java","javascript","leetcode","linkedlist","lodash","polyfills","prototype","queue","stack","tree"],"created_at":"2024-09-26T07:01:34.020Z","updated_at":"2025-05-15T20:01:00.893Z","avatar_url":"https://github.com/sudheerj.png","language":"Java","readme":"# datastructures-algorithms\nList of Programs related to data structures and algorithms\n\n## Data Structures\n\n### Stack\n\n| No. | Name              |                                                               Source                                                                | Live                                                                                                                                                                         |                                                               Documentation                                                                | Level |        Pattern         |\n| :-: | :---------------- | :---------------------------------------------------------------------------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :---: | :--------------------: |\n|  1  | Stack using array | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/stack/1.stack_with_array/stack_with_array.js) | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/stack/1.stack_with_array//stack_with_array.js) | -\u003c!--[Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/stack/1.stack_with_array//stack_with_array.md) --\u003e | Easy  | Using Array operations |\n| 2    | Stack using linkedlist                  |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/stack/2.stack_with_linkedlist/stack_with_linkedlist.js)                                                                                                                                    |  [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/stack/2.stack_with_linkedlist/stack_with_linkedlist.js)                                                                                                                                                                             |  -\u003c!--[Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/stack/2.stack_with_linkedlist/stack_with_linkedlist.md) --\u003e                                                                                                                                          | Easy      |   Using LinkedList operations                     |\n\n\n### Queue\n   1. Queue using array: [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/queue/queue_array.js)\n   2. Queue using linkedlist: [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/queue/queue_with_linkedlist.js)\n\n### SinglyLinkedlist\n   1. SinglyLinkedlist implementation: [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/singlyLinkedList/singlyLinkedList.js) [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/singlyLinkedList/singlyLinkedList.js) [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/singlyLinkedList/singlyLinkedList.md)\n    \n### DoublyLinkedlist\n\n   1. DoublyLinkedlist implementation: [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/doublyLinkedlist/doublyLinkedlist.js) [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/doublyLinkedlist/doublyLinkedlist.js) [Documentation](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/doublyLinkedlist/doublyLinkedlist.md)\n\n### Tree\n   1. Binary Search Tree: [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/trees/binary_search_tree.js) [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/trees/binary_search_tree.js) [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/trees/binary_search_tree.js)\n\n### Graphs\n\n   1. Unweighted undirected graph: [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/graphs/unweightedUndirected/unweighted_undirected.js) [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/graphs/unweightedUndirected/unweighted_undirected.js) [Documentation](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/graphs/unweightedUndirected/unweighted_undirected.md)\n\n### HashTable\n\n   1. HashTable: [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/datastructures/hashtable/hashtable.js)\n\n## Algorithms\n\n### Array\n\n| No. | Name                                  |                                                                               Source                                                                                | Live                                                                                                                                                                                                         |                                                                               Documentation                                                                                | Level  |           Pattern            |\n| :-: | :------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :--------------------------: |\n|  1  | Contains duplicates                   |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/1.containsDuplicate/containsDuplicate.js)         | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/1.containsDuplicate/containsDuplicate.js)                |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/1.containsDuplicate/containsDuplicate.md)         |  Easy  |          Set/Object          |\n|  2  | Two sum2- Input array sorted          |                  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/2.twoSum2/twoSum2.js)                   | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/2.twoSum2/twoSum2.js)                                    |                  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/2.twoSum2/twoSum2.md)                   | Medium |         Two pointers         |\n|  3  | 3 sum                                 |                 [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/3.threeSum/threeSum.js)                  | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/3.threeSum/threeSum.js)                                  |                 [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/3.threeSum/threeSum.md)                  | Medium |         Two pointers         |\n|  4  | Product of array except self          |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/4.productExceptSelf/productExceptSelf.js)         | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/4.productExceptSelf/productExceptSelf.js)                |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/4.productExceptSelf/productExceptSelf.md)         | Medium |  Prefix and postfix pattern  |\n|  5  | Max sum subarray                      |           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/5.maxSumSubarray/maxSumSubarray.js)            | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/5.maxSumSubarray/maxSumSubarray.js)                      |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/5.maxSumSubarray/maxSumSubarray.md)            | Medium |      Kadane's algorithm      |\n|  6  | Minimum size subarray sum             |     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/6.minimumSizeSubarraySum/minSizeSubarraySum.js)      | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/6.minimumSizeSubarraySum/minSizeSubarraySum.js)          |     [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/6.minimumSizeSubarraySum/minSizeSubarraySum.md)      | Medium |        Sliding window        |\n|  7  | Sort Colors                           |               [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/7.sortColors/sortColors.js)                | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/7.sortColors/sortColors.js)                              |               [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/7.sortColors/sortColors.md)                | Medium |         Two pointers         |\n|  8  | Maximum product subarray              |       [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/8.maxProductSubarray/maxProductSubarray.js)        | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/8.maxProductSubarray/maxProductSubarray.js)              |       [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/8.maxProductSubarray/maxProductSubarray.md)        | Medium |      Kadane's algorithm      |\n|  9  | Find minimum in rotated sorted array  |    [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/9.minRotatedSortedarray/minRotatedSortedarray.js)     | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/9.minRotatedSortedarray/minRotatedSortedarray.js)        |    [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/9.minRotatedSortedarray/minRotatedSortedarray.md)     | Medium |   Binary search technique    |\n| 10  | Maximum Circular subarray             |   [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/10.maxSumCircularSubArray/maxSumCircularSubArray.js)   | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/10.maxSumCircularSubArray/maxSumCircularSubArray.js)     |   [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/10.maxSumCircularSubArray/maxSumCircularSubArray.md)   | Medium |      Kadane's algorithm      |\n| 11  | Rotate array                          |              [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/11.rotateArray/rotateArray.js)              | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/11.rotateArray/rotateArray.js)                           |              [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/11.rotateArray/rotateArray.md)              | Medium |         Two pointers         |\n| 12  | Search in rotated sorted array        | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/12.searchRotatedSortedArray/searchRotatedSortedArray.js) | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/12.searchRotatedSortedArray/searchRotatedSortedArray.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/11.searchRotatedSortedArray/searchRotatedSortedArray.md) | Medium |        Binary search         |\n| 13  | Container with most water             |   [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/13.containerWithMostWater/containerWithMostWater.js)   | [Playground](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/13.containerWithMostWater/containerWithMostWater.js)     |   [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/13.containerWithMostWater/containerWithMostWater.md)   | Medium |         Two pointers         |\n| 14  | First missing positive number         |     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/14.firstMissingPositive/firstMissingPositive.js)     | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/14.firstMissingPositive/firstMissingPositive.js)         |     [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/14.firstMissingPositive/firstMissingPositive.md)     |  Hard  |       In-place hashing       |\n| 15  | Best time to buy stock and sell stock |             [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/15.buySellStock/buySellStock.js)             | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/15.buySellStock/buySellStock.js)                         |             [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/15.buySellStock/buySellStock.md)             |  Easy  |       Greedy algorithm       |\n| 16  | Two missing numbers                   |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/16.twoMissingNumbers/twoMissingNumbers.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/16.twoMissingNumbers/twoMissingNumbers.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/16.twoMissingNumbers/twoMissingNumbers.md)        | Medium | Sum and average calculations |\n| 17  | Pascal's Triangle                  |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/17.pascalsTriangle/pascalsTriangle.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/17.pascalsTriangle/pascalsTriangle.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/17.pascalsTriangle/pascalsTriangle.md)        | Easy | Array traversal and sequential sum |\n| 18  | Remove Element                   |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/18.removeElement/removeElement.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/18.removeElement/removeElement.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/18.removeElement/removeElement.md)        | Easy | Array traversal |\n| 19  | Can place flowers                  |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/19.canPlaceFlowers/canPlaceFlowers.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/19.canPlaceFlowers/canPlaceFlowers.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/19.canPlaceFlowers/canPlaceFlowers.md)        | Easy | Array traversal and comparison |\n| 20  | Majority Element                 |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/20.majorityElement/majorityElement.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/20.majorityElement/majorityElement.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/20.majorityElement/majorityElement.md)        | Easy | Boyer Moore Voting algorithm |\n| 21  | Pivot Index                |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/21.pivotIndex/pivotIndex.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/21.pivotIndex/pivotIndex.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/21.pivotIndex/pivotIndex.md)        | Easy | Array traversal |\n| 22  | Range Sum queries                |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/22.sumRange/sumRange.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/22.sumRange/sumRange.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/22.sumRange/sumRange.md)        | Easy | Array traversal |\n| 23  | Disappeared numbers                |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/23.disappearedNumbers/disappearedNumbers.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/23.disappearedNumbers/disappearedNumbers.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/23.disappearedNumbers/disappearedNumbers.md)        | Easy | Array traversal |\n| 24  | Identical pairs                |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/24.identicalPairs/identicalPairs.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/24.identicalPairs/identicalPairs.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/24.identicalPairs/identicalPairs.md)        | Easy | Array traversal \u0026 map |\n| 25  | Destination City                |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/25.destinationCity/destinationCity.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/25.destinationCity/destinationCity.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/25.destinationCity/destinationCity.md)        | Easy | Array traversal \u0026 set |\n| 26  | Set mismatch                |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/26.setMismatch/setMismatch.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/26.setMismatch/setMismatch.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/26.setMismatch/setMismatch.md)        | Easy | Array traversal \u0026 marking numbers |\n| 27  | Intersection of arrays                |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/27.intersectionOfArrays/intersectionOfArrays.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/27.intersectionOfArrays/intersectionOfArrays.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/27.intersectionOfArrays/intersectionOfArrays.md)        | Easy | Set and array traversal |\n| 29  | Special array                |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/29.specialArray/specialArray.js)        | [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/29.specialArray/specialArray.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/array/29.specialArray/specialArray.md)        | Easy | Frequency counter and array traversal |\n\n### String\n\n| No. | Name                                           |                                                                                             Source                                                                                             |                                                                                                                Live                                                                                                                |                                                                                             Documentation                                                                                             | Level  |              Pattern              |\n| :-: | :--------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :-------------------------------: |\n|  1  | Longest substring without repeating characters | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/1.longestSubstringWithoutRepeatingChars/longestSubstringWithoutRepeatingChars.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/1.longestSubstringWithoutRepeatingChars/longestSubstringWithoutRepeatingChars.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/1.longestSubstringWithoutRepeatingChars/longestSubstringWithoutRepeatingChars.md) | Medium |          Sliding Window           |\n|  2  | Longest repeating character replacement        |       [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/2.longestRepeatingCharReplacement/longestRepeatingCharReplacement.js)       |       [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/2.longestRepeatingCharReplacement/longestRepeatingCharReplacement.js)       |       [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/2.longestRepeatingCharReplacement/longestRepeatingCharReplacement.md)       | Medium |          Sliding Window           |\n|  3  | Minimum window substring                       |                    [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/3.minWindowSubstring/minWindowSubstring.js)                    |                    [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/3.minWindowSubstring/minWindowSubstring.js)                    |                    [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/3.minWindowSubstring/minWindowSubstring.md)                    |  Hard  |          Sliding Window           |\n|  4  | Valid anagram                                  |                          [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/4.validAnagram/validAnagram.js)                          |                          [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/4.validAnagram/validAnagram.js)                          |                          [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/4.validAnagram/validAnagram.md)                          |  Easy  |        Frequency counting         |\n|  5  | Group anagrams                                 |                         [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/5.groupAnagrams/groupAnagrams.js)                         |                         [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/5.groupAnagrams/groupAnagrams.js)                         |                         [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/5.groupAnagrams/groupAnagrams.md)                         | Medium |        Frequency counting         |\n|  6  | Valid palindrome                               |                       [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/6.validPalindrome/validPalindrome.js)                       |                       [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/6.validPalindrome/validPalindrome.js)                       |                       [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/6.validPalindrome/validPalindrome.md)                       |  Easy  |            Two pointer            |\n|  7  | Longest palindromic substring                  |           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/7.longestPalindromicSubstring/longestPalindromicSubstring.js)           |           [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/7.longestPalindromicSubstring/longestPalindromicSubstring.js)           |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/7.longestPalindromicSubstring/longestPalindromicSubstring.md)           | Medium |      Expanding around center      |\n|  8  | Palindromic substrings                         |                 [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/8.palindromicSubstrings/palindromicSubstrings.js)                 |                 [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/8.palindromicSubstrings/palindromicSubstrings.js)                 |                 [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/8.palindromicSubstrings/palindromicSubstrings.md)                 | Medium |      Expanding around center      |\n|  9  | Encode and decode strings                      |                   [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/9.encodeDecodeStrings/encodeDecodeStrings.js)                   |                   [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/9.encodeDecodeStrings/encodeDecodeStrings.js)                   |                   [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/9.encodeDecodeStrings/encodeDecodeStrings.md)                   | Medium | Basic string and array operations |\n| 10  | Greatest common devisor of strings             |                [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/10.greatestCommonDivisor/greatestCommonDivisor.js)                 |                [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/10.greatestCommonDivisor/greatestCommonDivisor.js)                 |                [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/10.greatestCommonDivisor/greatestCommonDivisor.md)                 |  Easy  |  Euclidean and String operations  |\n| 11  | Reverse words in string                        |                 [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/11.reverseWordsInString/reverseWordsInString.js)                  |                 [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/11.reverseWordsInString/reverseWordsInString.js)                  |                 [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/11.reverseWordsInString/reverseWordsInString.md)                  | Medium | Basic string and array operations |\n| 12  | Length of last word                      |                 [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/12.lastWordLength/lastWordLength.js)                  |                 [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/12.lastWordLength/lastWordLength.js)                  |                 [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/strings/12.lastWordLength/lastWordLength.md)                  | Easy | String traversal |\n\n### Dynamic programming\n\n| No. | Name                           |                                                                                                      Source                                                                                                       |                                                                                                         Live                                                                                                          |                                                                                           Documentation                                                                                            | Level  |                     Pattern                     |\n| :-: | :----------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :---------------------------------------------: |\n|  1  | Climbing stairs                |                            [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/1.climbingStairs/climbingStairs.js)                            |            [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/1.climbingStairs/climbingStairs.js)            | [Documentation](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/1.climbingStairs/climbingStairs.md) | Medium |               Dynamic programming               |\n|  2  | Coin change                    |                               [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/2.coinsChange/coinsChange.js)                               |               [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/2.coinsChange/coinsChange.js)               |    [Documentation](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/2.coinsChange/coinsChange.md)    | Medium |               Dynamic programming               |\n|  3  | Longest increasing subsequence | [Source](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/3.longestIncreasingSequence/longestIncreasingSequence.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/3.longestIncreasingSequence/longestIncreasingSequence.js) |      [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/3.longestIncreasingSequence/longestIncreasingSequence.md)      | Medium |         Dynamic programming(Bottom up)          |\n|  4  | Longest common subsequence     |                  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/4.longestCommonSubsequence/longestCommonSubsequence.js)                  |  [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/4.longestCommonSubsequence/longestCommonSubsequence.js)  |       [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/4.longestCommonSubsequence/longestCommonSubsequence.md)       | Medium |  Two-dimentional bottom up Dynamic programming  |\n|  5  | Word break                     |                                 [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/5.wordBreak/wordBreak.js)                                 |                 [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/5.wordBreak/wordBreak.js)                 |                         [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/5.wordBreak/wordBreak.md)                          | Medium |          Bottom up dynamic programming          |\n|  6  | Combination Sum 4              |                           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/6.combinationSum4/combinationSum4.js)                           |           [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/6.combinationSum4/combinationSum4.js)           |                [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/6.combinationSum4/combinationSum4.md)                | Medium |          Bottom up Dynamic programming          |\n|  7  | House robber                   |               [Source](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/7.houseRobber/houseRobber.js)               |               [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/7.houseRobber/houseRobber.js)               |    [Documentation](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/7.houseRobber/houseRobber.md)    | Medium | Fibonacci pattern bottom-up dynamic programming |\n|  8  | House robber 2                 |              [Source](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/8.houseRobber2/houseRobber2.js)              |              [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/8.houseRobber2/houseRobber2.js)              |   [Documentation](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/8.houseRobber2/houseRobber2.md)   | Medium |          Bottom-up dynamic programming          |\n|  9  | Decode ways                    |                           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/9.numDecodingWaysnumDecodingWays.js)                            |           [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/9.numDecodingWaysnumDecodingWays.js)            |                [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/9.numDecodingWaysnumDecodingWays.md)                 | Medium |               Dynamic programming               |\n| 10  | Unique paths                   |                               [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/9.uniquePaths/uniquePaths.js)                               |               [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/9.uniquePaths/uniquePaths.js)               |    [Documentation](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/9.uniquePaths/uniquePaths.md)    | Medium |   Dynamic programming                                               |\n| 11 |   Jump game                             |    [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/11.jumpGame/jumpGame.js)                                                                                                                                                                                                               |  [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/11.jumpGame/jumpGame.js)                                                                                                                                                                                                                      |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/dynamicProgramming/11.jumpGame/jumpGame.md)                                                                                                                                                                                                   |  Medium      |        Dynamic programming or Greedy                                         |\n\n\n### Binary\n\n| No. | Name                |                                                                    Source                                                                     | Playground                                                                                                                                                                        |                                                                    Documentation                                                                     | Level  |       Pattern       |\n| :-: | :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :-----------------: |\n|  1  | Sum of two integers |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/1.twoSum/twoSum.js)        | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/1.twoSum/twoSum.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/1.twoSum/twoSum.md)        | Medium |  Bitwise operations  |\n|  2  | Number of 1 Bits    | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/2.numberOf1Bits/numberOf1Bits.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/2.numberOf1Bits/numberOf1Bits.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/2.numberOf1Bits/numberOf1Bits.md) |  Easy  |  Brian Kernighans   |\n|  3  | Counting Bits       |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/3.countingBits/countingBits.js)  | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/3.countingBits/countingBits.js)   |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/3.countingBits/countingBits.md)  |  Easy  | Dynamic programming |\n|  4  | Missing number      | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/4.missingNumber/missingNumber.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/4.missingNumber/missingNumber.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/4.missingNumber/missingNumber.js) |  Easy  |     Bitwise XOR     |\n|  5  | Reverse Bits        |   [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/5.reverseBits/reverseBits.js)   | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/5.reverseBits/reverseBits.js)     |   [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/binary/5.reverseBits/reverseBits.md)   |  Easy  | Bitwise operations  |\n\n### Stack\n\n| No. | Name               |                                                                       Source                                                                       | Playground                                                                                                                                                                             |                                                                       Documentation                                                                       | Level  |          Pattern           |\n| :-: | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :------------------------: |\n|  1  | Sort Stack         |        [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/1.sortStack/sortStack.js)        | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/1.sortStack/sortStack.js)               |        [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/1.sortStack/sortStack.js)        |  Easy  |      Stack push \u0026 pop      |\n|  2  | Balanced Brackets  | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/2.balancedBrackets/balancedBrackets.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/2.balancedBrackets/balancedBrackets.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/2.balancedBrackets/balancedBrackets.md) | Medium |     Stack push and pop     |\n|  3  | Reverse Polish Notation |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/3.reversePolishNotation/reversePolishNotation.js)                                                                                                                                                  |  [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/3.reversePolishNotation/reversePolishNotation.js)                                                                                                                                                                                        |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/3.reversePolishNotation/reversePolishNotation.md)                                                                                                                                                         | Medium | Stack push \u0026 pop |\n|  4  | Daily Temperatures |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/4.dailyTemperatures/dailyTemperatures.md)                                                                                                                                                   |  [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/4.dailyTemperatures/dailyTemperatures.js)                                                                                                                                                                                      |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/4.dailyTemperatures/dailyTemperatures.md)                                                                                                                                                         | Medium | Monotonic decreasing stack |\n|  5  |  Number of People See In Queue                  | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/5.numberOfPeopleSeeInQueue/numberOfPeopleSeeInQueue.js)                                                                                                                                                    |  [JavaScript](https://livecodes.io/?console=open\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/5.numberOfPeopleSeeInQueue/numberOfPeopleSeeInQueue.js)                                                                                                                                                                                       | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/stack/5.numberOfPeopleSeeInQueue/numberOfPeopleSeeInQueue.md)                                                                                                                                                          | Medium | Monotonic decreasing stack |\n\n\n### LinkedList\n\n| No. | Name                             |                                                                                           Source                                                                                            | Playground                                                                                                                                                                                         |                                                                                      Documentation                                                                                       | Level  |                       Pattern                        |\n| :-: | :------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :--------------------------------------------------: |\n|  1  | Reverse sublist                  |                     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/1.reverseSublist/reverseSublist.js)                     | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/1.reverseSublist/reverseSublist.js)            |                [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/1.reverseSublist/reverseSublist.js)                |  Easy  |                    List traversal                    |\n|  2  | Detect cycle in a linkedlist     |                         [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/2.detectLoop/detectLoop.js)                         | [Playground](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/2.detectLoop/detectLoop.js)                    |                    [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/2.detectLoop/detectLoop.js)                    |  Easy  | Floyd's cycle-finding or Tortoise and Hare algorithm |\n|  3  | Merge two sorted lists           |                [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/3.mergeTwoSortedLists/mergeTwoSortedLists.js)                | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/mergeTwoSortedLists.js)                        |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/3.mergeTwoSortedLists/mergeTwoSortedLists.md)           |  Easy  |                Arithmetic comparison                 |\n|  4  | Merge K sorted lists             |                  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/4.mergeKSortedLists/mergeKSortedLists.js)                  | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/4.mergeKSortedLists/mergeKSortedLists.js)      |             [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/4.mergeKSortedLists/mergeKSortedLists.js)             |  Hard  |                  Divide and conquer                  |\n|  5  | Remove Kth node from end of list |               [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/5.removeKthNodeFromEnd/removeKthNodeFromEnd.js)               | [JavaScript](https://livecodes.io/?console\u0026xhttps://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/5.removeKthNodeFromEnd/removeKthNodeFromEnd.js) |          [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/5.removeKthNodeFromEnd/removeKthNodeFromEnd.js)          | Medium |                     Two pointers                     |\n|  6  | Reorder list                     |        [Source](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/6.reorderList/reorderList.js)        | [Javascript](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/6.reorderList/reorderList.js)                                                  |                   [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/6.reorderList/reorderList.js)                   | Medium |                     Two pointers                     |\n|  7  | Find middle node                 |                     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/7.findMiddleNode/findMiddleNode.js)                     | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/7.findMiddleNode/findMiddleNode.js)            |                [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/7.findMiddleNode/findMiddleNode.md)                |  Easy  |                     Two pointers                     |\n|  8  | Find Kth node from end of list   | [Source](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/8.findKthNodeFromEnd/findKthNodeFromEnd.js) | [JavaScript](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/8.findKthNodeFromEnd/findKthNodeFromEnd.js)                                    |            [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/8.findKthNodeFromEnd/findKthNodeFromEnd.md)            |  Easy  |                     Two pointers                     |\n|  9  | Partition list                   |      [Source](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/9.partitionList/partitionList.js)      | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/9.partitionList/partitionList.js)              | [Documentation](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/9.partitionList/partitionList.md) |  Medium      |      Two pointers                                                |\n| 10  | Remove duplicates                |                  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/10.removeDuplicates/removeDuplicates.js)                   | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/10.removeDuplicates/removeDuplicates.js)       |             [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/10.removeDuplicates/removeDuplicates.md)              | Easy       |    Two pointers                                                  |\n| 11 |  Binary to decimal                                |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/11.binaryToDecimal/binaryToDecimal.js)                                                                                                                                                                                           |   [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/11.binaryToDecimal/binaryToDecimal.js)                                                                                                                                                                                                       |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/linkedlist/11.binaryToDecimal/binaryToDecimal.md)                                                                                                                                                                                          |  Easy      |    List traversal and math operations                                                  |\n\n\n\n### Doubly linkedlist\n\n| No. | Name                             |                                                                                           Source                                                                                            | Playground                                                                                                                                                                                         |                                                                                      Documentation                                                                                       | Level  |                       Pattern                        |\n| :-: | :------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :--------------------------------------------------: |\n|  1  | Swap first and last                  |                     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/1.swapFirstAndLast/swapFirstAndLast.js)                    | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/1.swapFirstAndLast/swapFirstAndLast.js)             |                [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/1.swapFirstAndLast/swapFirstAndLast.md)                 |  Easy  |              Swap nodes                     |\n|  2  | Palindrome check     |                         [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/2.palindromeCheck/palindromeCheck.js)                         | [Playground](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/2.palindromeCheck/palindromeCheck.js)                    |                    [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/2.palindromeCheck/palindromeCheck.md)                    |  Easy  | Two pointers |\n|  3  | Swap node pairs          |                [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/3.SwapNodePairs/SwapNodePairs.js)                | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/3.SwapNodePairs/SwapNodePairs.js)                        |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/doublyLinkedlist/3.SwapNodePairs/SwapNodePairs.md)           |  Medium  |                List traversal and update pointers                 |\n\n### Tree\n\n | No. | Name                         |                                                                        Source                                                                         | Playground                                                                                                                                                                                |                                                                        Documentation                                                                         | Level |                Pattern                 |\n | :-: | :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------: | :---: | :------------------------------------: |\n |  1  | Maximum depth of binary tree | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/1.maxDepthBinaryTree/maxDepthBinaryTree.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/1.maxDepthBinaryTree/maxDepthBinaryTree.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/1.maxDepthBinaryTree/maxDepthBinaryTree.js) | Easy  | Depth First Search(DFS) with recursion |\n |  2  | Same tree                    |           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/2.sameTree/sameTree.js)           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/2.sameTree/sameTree.js)                     |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/2.sameTree/sameTree.md)           | Easy  |               Depth First Search(DFS) with recursion                 |\n | 3 | Invert or Flip binary tree                             |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/3.invertTree/invertTree.js)                                                                                                                                                     |    [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/3.invertTree/invertTree.js)                                                                                                                                                                                        |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/3.invertTree/invertTree.js)                                                                                                                                                             | Easy      |  Swapping nodes and Depth First Search(DFS) with recursion                                      |\n | 4 | Binary tree maximum path sum                             |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/4.maxPathSum/maxPathSum.js)                                                                                                                                                     |    [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/4.maxPathSum/maxPathSum.js)                                                                                                                                                                                        |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/4.maxPathSum/maxPathSum.md)                                                                                                                                                             | Hard      |   DFS using recursion                                |\n |  5 | Binary tree level order traversal | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/5.levelOrderTraversal/levelOrderTraversal.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/5.levelOrderTraversal/levelOrderTraversal.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/5.levelOrderTraversal/levelOrderTraversal.js) | Easy  | Depth First Search(DFS) with recursion |\n |  6  | Serialize and deserialize binary tree                   |           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/6.serializeDeserialize/serializeDeserialize.js)           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/6.serializeDeserialize/serializeDeserialize.js)                     |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/6.serializeDeserialize/serializeDeserialize.md)           | Hard  |               DFS preorder traversal                |\n |  7 | Subtree of another tree | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/7.subtree/subtree.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/7.subtree/subtree.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/7.subtree/subtree.js) | Easy  | Depth First Search(DFS) with recursion |\n |  8  | Construct binary tree from preorder and inorder traversal                   |           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/8.buildTree/buildTree.js)           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/8.buildTree/buildTree.js)                     |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/8.buildTree/buildTree.md)           | Medium  |               DFS with recursion                |\n | 9 | Validate BST                             |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/9.validateBST/validateBST.js)                                                                                                                                                     |    [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/9.validateBST/validateBST.js)                                                                                                                                                                                        |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/9.validateBST/validateBST.js)                                                                                                                                                             | Medium      | Depth-First-Search(DFS) using recursion                                       |\n |  10 | Kth smallest element in BST | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/10.kthSmallestBST/kthSmallestBST.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/10.kthSmallestBST/kthSmallestBST.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/10.kthSmallestBST/kthSmallestBST.js) | Medium  | Iterative inorder traversal using stack |\n |  11  | Lowest Common Ancestor of BST                   |           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/11.lowestCommonAncestor/lowestCommonAncestor.js)           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/11.lowestCommonAncestor/lowestCommonAncestor.js)                     |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/11.lowestCommonAncestor/lowestCommonAncestor.md)           | Medium  |               Iterative tree traversal                |\n |  12 | Trie | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/12.trie/trie.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/12.trie/trie.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/12.trie/trie.js) | Medium  |  Iteration over string characters |\n |  13  | Design and Search words Datastructure                  |           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/13.wordDictionary/wordDictionary.js)           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/13.wordDictionary/wordDictionary.js)                     |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/13.wordDictionary/wordDictionary.md)           | Medium  |               Trie and DFS recursion                |\n | 14 | Word search 2                            |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/14.wordSearch2/wordSearch2.js)                                                                                                                                                     |    [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/14.wordSearch2/wordSearch2.js)                                                                                                                                                                                        |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/tree/14.wordSearch2/wordSearch2.js)                                                                                                                                                             | Hard      |      Backtracking with Trie                                  |\n\n### Graph\n\n\n| No. | Name                       |                                                                                      Source                                                                                      | Live                                                                                                                                                                                 |                                                                                      Documentation                                                                                      | Level  |              Pattern              |\n| :-: | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :-------------------------------: |\n|  1  | Clone graph                |                      [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/1.cloneGraph/cloneGraph.js)                      | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/1.cloneGraph/cloneGraph.js)           |                      [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/1.cloneGraph/cloneGraph.js)                      | Medium | Depth-First-Search(DFS) using recursion |\n|  2  | Course schedule            |                  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/2.courseSchedule/courseSchedule.js)                  | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/2.courseSchedule/courseSchedule.js)   |                  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/2.courseSchedule/courseSchedule.md)                  | Medium |    DFS using recursion                               |\n|  3  | Pacific Atlantic waterflow | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/3.pacificAtlantic/pacificAtlantic.js) | [Playground](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/3.pacificAtlantic/pacificAtlantic.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/3.pacificAtlantic/pacificAtlantic.md) | Medium       |    DFS using recursion                               |\n|  4  | Number of Islands          | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/4.numberOfIslands/numberOfIslands.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/4.numberOfIslands/numberOfIslands.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/4.numberOfIslands/numberOfIslands.md) |Medium       |    DFS using recursion                               |\n|  5  | Alien dictionary         | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/5.alienDictionary/alienDictionary.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/5.alienDictionary/alienDictionary.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/5.alienDictionary/alienDictionary.md) |Hard       |    Kahn's algorithm for topological sorting                               |\n|  6  |  Graph valid tree         | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/6.graphValidTree/graphValidTree.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/6.graphValidTree/graphValidTree.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/6.graphValidTree/graphValidTree.md) | Medium       |    Union Find algorithm(+ union by rank \u0026 path compression)                               |\n|  7  | Number of connected components in an undirected graph         | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/7.numberOfConnectedComponents/numberOfConnectedComponents.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/7.numberOfConnectedComponents/numberOfConnectedComponents.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/7.numberOfConnectedComponents/numberOfConnectedComponents.md) | Medium       |    Union Find algorithm(+ union by rank \u0026 path compression)                               |\n|  8  | Walls and gates        | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/8.wallsGates/wallsGates.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/8.wallsGates/wallsGates.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/graph/8.wallsGates/wallsGates.md) | Medium       |    BFS traversal                             |\n\n### Matrix\n| No. | Name             |                                                                      Source                                                                       | Live                                                                                                                                                                                  |                                                                                  Documentation                                                                                  | Level  |              Pattern               |\n| :-: | :--------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :--------------------------------: |\n|  1  | Set matrix zeros | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/1.setMatrixZeroes/setMatrixZeroes.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/1.setMatrixZeroes/setMatrixZeroes.js) |            [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/1.setMatrixZeroes/setMatrixZeroes.md)             | Medium | In-place updates through traversal |\n| 2.  | Spiral matrix    |  [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/2.spiralMatrix/spiralMatrix.js)  | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/2.spiralMatrix/spiralMatrix.js)       | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/2.spiralMatrix/spiralMatrix.md) | Medium |     Boundary matrix traversal/spiral pattern      |\n|  3  | Rotate image     |     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/3.rotateImage/rotateImage.js)     | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/3.rotateImage/rotateImage.js)         |                [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/3.rotateImage/rotateImage.md)                 | Medium |    Inplace square rotation                                |\n| 4 |  Word search                | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/4.wordSearch/wordSearch.js)                                                                                                                                                  |  [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/4.wordSearch/wordSearch.js)                                                                                                                                                                                     | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/matrix/4.wordSearch/wordSearch.md)                                                                                                                                                                                    | Medium       |  Depth-First Search (DFS) using recursion                                  |\n\n\n### Interval\n\n| No. | Name                      |                                                                               Source                                                                                |                                                                                                  Live                                                                                                   |                                                                               Documentation                                                                                | Level  |              Pattern              |\n| :-: | :------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :-------------------------------: |\n|  1  | Insert interval           |          [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/1.insertInterval/insertInterval.js)          |          [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/1.insertInterval/insertInterval.js)          |          [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/1.insertInterval/insertInterval.md)          | Medium |       Basic math operations       |\n|  2  | Merge interval            |           [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/2.mergeInterval/mergeInterval.js)           |           [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/2.mergeInterval/mergeInterval.js)           |           [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/2.mergeInterval/mergeInterval.md)           | Medium | Sorting and basic math operations |\n|  3  | Non-overlapping intervals | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/3.nonOverlappingIntervals/nonOverlappingIntervals.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/3.nonOverlappingIntervals/nonOverlappingIntervals.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/3.nonOverlappingIntervals/nonOverlappingIntervals.md) | Medium | Greedy and basic math operations  |\n|  4  | Meeting rooms             |            [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/4.meetingRooms/meetingRooms.js)            |            [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/4.meetingRooms/meetingRooms.js)            |            [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/4.meetingRooms/meetingRooms.md)            | Medium | Greedy and basic math operations  |\n| 5 | Meeting rooms 2                          | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/5.meetingRooms2/meetingRooms2.js)                                                                                                                                                                    |  [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/5.meetingRooms2/meetingRooms2.js)                                                                                                                                                                                                        |  [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/interval/5.meetingRooms2/meetingRooms2.md)                                                                                                                                                                          | Medium       |   Two pointers                                |\n\n### Hashtable\n| No. | Name                          |                                                                                   Source                                                                                   |                                                                                                      Live                                                                                                      |                                                                                   Documentation                                                                                   | Level  |         Pattern         |\n| :-: | :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----: | :---------------------: |\n|  1  | Duplicates                    |                 [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/1.duplicates/duplicates.js)                 |                                 [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/1.duplicates/duplicates.js)                                 |                  [JavaScript](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/1.duplicates/duplicates.md)                   |  Easy  |        Using Map        |\n|  2  | Two sum                       |                     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/2.twoSum/twoSum.js)                     |                     [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/2.twoSum/twoSum.js)                     |                     [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/2.twoSum/twoSum.md)                     |  Easy  |        Using Map        |\n|  3  | First non repeating character | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/3.firstNonRepeatingCharacter/firstNonRepeatingCharacter.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/3.firstNonRepeatingCharacter/firstNonRepeatingCharacter.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/3.firstNonRepeatingCharacter/firstNonRepeatingCharacter.md) |  Easy  |        Using Map        |\n|  4  | Group anagrams                |              [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/4.groupAnagrams/groupAnagrams.js)              |              [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/4.groupAnagrams/groupAnagrams.js)              |              [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/4.groupAnagrams/groupAnagrams.md)              | Medium | Using Map \u0026 its methods |\n| 5 |   Verify Common Elements                            | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/5.verifyCommonElements/verifyCommonElements.js)                                                                                                                                                                           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/5.verifyCommonElements/verifyCommonElements.js)                                                                                                                                                                                                               | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/5.verifyCommonElements/verifyCommonElements.md)                                                                                                                                                                                  | Easy       |    Using Map methods                     |\n|  6  | Longest consequtive sequence |[Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/6.longestConsecutiveSequence/longestConsecutiveSequence.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/6.longestConsecutiveSequence/longestConsecutiveSequence.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/6.longestConsecutiveSequence/longestConsecutiveSequence.md) |                                                                     Medium                                                                     | Find sequence using set or hash table |\n| 7 |   Valid Sudoku                           | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/7.validSudoku/validSudoku.js)                                                                                                                                                                           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/7.validSudoku/validSudoku.js)                                                                                                                                                                                                               | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/7.validSudoku/validSudoku.md)                                                                                                                                                                                  | Medium       |    Using Map and Set methods                     |\n| 8 |   Letter combinations                           | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/8.letterCombinations/letterCombinations.js)                                                                                                                                                                           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/8.letterCombinations/letterCombinations.js)                                                                                                                                                                                                               | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/8.letterCombinations/letterCombinations.md)                                                                                                                                                                                  | Medium       |    Backtracking with hash table mapping                 |\n| 9 |   LRU Cache                           | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/9.lruCache/lruCache.js)                                                                                                                                                                           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/9.lruCache/lruCache.js)                                                                                                                                                                                                               | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/9.lruCache/lruCache.md)                                                                                                                                                                                  | Medium       |    Combination of Hash Table and doubly linked list                 |\n| 10 |   Maximum number of balloons                           | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/10.maximumBalloons/maximumBalloons.js)                                                                                                                                                                           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/10.maximumBalloons/maximumBalloons.js)                                                                                                                                                                                                               | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/10.maximumBalloons/maximumBalloons.md)                                                                                                                                                                                  | Easy       |    Hash map on characters                 |\n| 11 |   Isomorphic Strings                          | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/11.isomorphicStrings/isomorphicStrings.js)                                                                                                                                                                           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/11.isomorphicStrings/isomorphicStrings.js)                                                                                                                                                                                                               | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/11.isomorphicStrings/isomorphicStrings.md)                                                                                                                                                                                  | Easy       |    mapping characters using Hash maps                |\n| 14 |   First unique character                          | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/14.firstUniqueCharacter/firstUniqueCharacter.js)                                                                                                                                                                           | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/14.firstUniqueCharacter/firstUniqueCharacter.js)                                                                                                                                                                                                               | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/algorithms/hashtable/14.firstUniqueCharacter/firstUniqueCharacter.md)                                                                                                                                                                                  | Easy       |    Hashing for character count                |\n\n## Sorting\n\n| No. | Name           |                                                              Source                                                               | Playground                                                                                                                                                            |                                                              Documentation                                                               | Level  |             Complexity             |\n| :-: | :------------- | :-------------------------------------------------------------------------------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :----: | :--------------------------------: |\n|  1  | Bubble sort    |    [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/1.bubbleSort/bubbleSort.js)    | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/1.bubbleSort/bubbleSort.js)       |    [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/1.bubbleSort/bubbleSort.md)    |  Easy  |   TC: O(n\u003csup\u003e2\u003c/sup\u003e), SC: O(1)   |\n|  2  | Selection sort | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/2.selectionSort/selectionSort.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/2.selectionSort/selectionSort.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/2.selectionSort/selectionSort.md) |  Easy  |   TC: O(n\u003csup\u003e2\u003c/sup\u003e), SC: O(1)   |\n|  3  | Insertion sort | [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/3.insertionSort/insertionSort.js) | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/3.insertionSort/insertionSort.js) | [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/3.insertionSort/insertionSort.md) |  Easy  |   TC: O(n\u003csup\u003e2\u003c/sup\u003e), SC: O(1)   |\n|  4  | Merge sort     |     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/4.mergeSort/mergeSort.js)     | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/4.mergeSort/mergeSort.js)         |     [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/4.mergeSort/mergeSort.md)     | Medium |     TC: O(n log(n)), SC: O(n)      |\n|  5  | Quick sort     |     [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/5.quickSort/quickSort.js)     | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/5.quickSort/quickSort.js)         |     [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/5.quickSort/quickSort.md)     | Medium | TC: O(n\u003csup\u003e2\u003c/sup\u003e), SC: O(log n) |\n|  6  | Heap sort      |      [Source](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/6.heapSort/heapSort.js)      | [JavaScript](https://livecodes.io/?console\u0026x=https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/6.heapSort/heapSort.js)           |      [Documentation](https://github.com/sudheerj/datastructures-algorithms/blob/master/src/javascript/sorting/6.heapSort/heapSort.md)      |  Hard  |     TC: O(n log(n)), SC: O(1)      |\n","funding_links":["https://github.com/sponsors/sudheerj","https://buymeacoffee.com/sudheerj"],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudheerj%2Fdatastructures-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsudheerj%2Fdatastructures-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudheerj%2Fdatastructures-algorithms/lists"}