Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yashkathe/dsa-with-javascript

Data Structures, Algorithms and Problems with Javascript
https://github.com/yashkathe/dsa-with-javascript

algorithms data-structures graphs javascript javascript-dsa linked-list problem-solving sorting-algorithms trees typescript

Last synced: about 4 hours ago
JSON representation

Data Structures, Algorithms and Problems with Javascript

Awesome Lists containing this project

README

        

# Data Structures and Algorithms with Leet Code Problems

_-With JavaScript and TypeScript_

## Table of Content

### Data Structures and Algorithms

- [Big O Notation](./A1%20Big%20O%20Notation/)
- [Recursion](./A2%20Recursion/)
- [Searching Algorithms](./A3%20Searching%20Alogirthms/)
- [Linear Search](./A3%20Searching%20Alogirthms/linear-search.js)
- [Binary Seatch](./A3%20Searching%20Alogirthms/binary-search.js)
- [Naive String Search](./A3%20Searching%20Alogirthms/naive-string-search.js)
- [Sorting Algorithms](./A4%20Sorting%20Algortihms/)
- [Bubble Sort](./A4%20Sorting%20Algortihms/bubble-sort.js)
- [Selection Sort](./A4%20Sorting%20Algortihms//selection-sort.js)
- [Insertion Sort](./A4%20Sorting%20Algortihms/insertion-sort)
- [Merge Sort](./A4%20Sorting%20Algortihms/merge%20sort/)
- [Merge Arrays](./A4%20Sorting%20Algortihms/merge%20sort/merge-array.js)
- [Merge Sort](./A4%20Sorting%20Algortihms/merge%20sort/merge-sort.js)
- [Quick Sort](./A4%20Sorting%20Algortihms/quick%20sort/)
- [Pivot Helper](./A4%20Sorting%20Algortihms/quick%20sort/pivot-helper.js)
- [Quick sort](./A4%20Sorting%20Algortihms/quick%20sort/quick-sort.js)
- [Radix sort](./A4%20Sorting%20Algortihms/radix%20sort/)
- [Helper Functions](./A4%20Sorting%20Algortihms/radix%20sort/helper-functions.js)
- [Radix Sort](./A4%20Sorting%20Algortihms/radix%20sort/radix-sort.js)
- [Data Structures - Introduction](./A5%20Data%20Structures%20Introduction/)
- [Class Syntax](./A5%20Data%20Structures%20Introduction/class-syntax.js)
- [Singly Linked List](./A6%20Singly%20Linked%20List/linked%20-list.js)
- [Doubly Linked List](./A7%20Doubly%20Linked%20List/doubly-linked-list.js)
- [Stacks and Queues](./A8%20Stack%20and%20Queues/)
- [Stacks using Array implementation](./A8%20Stack%20and%20Queues/stacks-array.js)
- [Stacks using Linked List implementation](./A8%20Stack%20and%20Queues/stack-linked-list.js)
- [Queues using Array implementation](./A8%20Stack%20and%20Queues/queues-array.js)
- [Queues using Linked List implementation](./A8%20Stack%20and%20Queues/queues-linked-list.js)
- [Binary Search Trees](./A9%20Binary%20Search%20Trees/binary-search-trees.js)
- [Binary Heaps](./A10%20Binary%20Heaps/binary-heaps.js)
- [Priority Queue](./A11%20Priority%20Queue/priority-queue.js)
- [Hash Tables](./A12%20Hash%20Tables)
- [Hash Functions](./A12%20Hash%20Tables/hash-functions.js)
- [Hash Tables](./A12%20Hash%20Tables/hash-tables.js)
- [Graphs](./A13%20Graphs/graph.js)

### Leet Code Problems

- [Easy Level Problems](./B1%20LEETCODE-Easy/)

- [Arrays](./B1%20LEETCODE-Easy/Arrays/)

- [Remove Elements](./B1%20LEETCODE-Easy/Arrays/remove_element.js)
- [Construct array from permutation](./B1%20LEETCODE-Easy/Arrays/array-from-permutation.js)
- [Decompress run length encoded list](./B1%20LEETCODE-Easy/Arrays/decompress-run-length.js)
- [Reverse Array](./B1%20LEETCODE-Easy/Arrays/reverse-array.js)
- [Shuffle Array](./B1%20LEETCODE-Easy/Arrays/suffle-array.js)
- [Number of good pairs](./B1%20LEETCODE-Easy/Arrays/number-of-good-pairs.js)
- [Running sum of 1d array](./B1%20LEETCODE-Easy/Arrays/running-sum-1d.js)
- [Difference of sum](./B1%20LEETCODE-Easy/Arrays/difference-of-sum.js)

- [Binary Search](./B1%20LEETCODE-Easy/Binary%20Search/)

- [Count negative numbers in a sorted matrix](./B1%20LEETCODE-Easy/Binary%20Search/count-negatives.js)

- [Binary Tree](./B1%20LEETCODE-Easy/Binary%20Trees/)

- [Solve the boolean binary tree](./B1%20LEETCODE-Easy/Binary%20Trees/boolean-binary-tree.js)
- [Find corresponding node in clone](./B1%20LEETCODE-Easy/Binary%20Trees/)
- [Check if certain value exists in binary tree](./B1%20LEETCODE-Easy/Binary%20Trees/)
- [Invert Tree](./B1%20LEETCODE-Easy/Binary%20Trees/)
- [Find Max Depth of binary tree](./B1%20LEETCODE-Easy/Binary%20Trees/)
- [Merge two trees](./B1%20LEETCODE-Easy/Binary%20Trees/)
- [Check if tress have similar leaves](./B1%20LEETCODE-Easy/Binary%20Trees/leaf-similar-trees.js)
- [Check if two trees are similar](./B1%20LEETCODE-Easy/Binary%20Trees/same-trees.js)
- [Is Uni Value Tree](./B1%20LEETCODE-Easy/Binary%20Trees/is-uni-value.js)

- [Binary Search Tree](./B1%20LEETCODE-Easy/Binary-Search-Tree/)

- [Increasing order search tree](./B1%20LEETCODE-Easy/Binary-Search-Tree/increasing-order-search-tree.js)
- [Minimum Distance between bst nodes](./B1%20LEETCODE-Easy/Binary-Search-Tree/min-dist-between-nodes.js)
- [Range Sum of BST](./B1%20LEETCODE-Easy/Binary-Search-Tree/range-sum.js)
- [Search in a BST](./B1%20LEETCODE-Easy/Binary-Search-Tree/search-a-node.js)
- [Mode in BST](./B1%20LEETCODE-Easy/Binary-Search-Tree/mode-in-bst.js)
- [Two Sum for BST nodes](./B1%20LEETCODE-Easy/Binary-Search-Tree/two-sum.js)
- [Maximum sum from root to leaf](./B1%20LEETCODE-Easy/Binary-Search-Tree/max-sum-root-to-leaf.js)

- [Hash Tables](./B1%20LEETCODE-Easy/Hash%20Tables/)

- [Arithmetic Triplets](./B1%20LEETCODE-Easy/Hash%20Tables/Arithmetic-triplets.js)
- [Decode message given a key](./B1%20LEETCODE-Easy/Hash%20Tables/Decode-message.js)
- [Equal occurences of string](./B1%20LEETCODE-Easy/Hash%20Tables/equal-occurence-string.js)
- [Panagram sentence](./B1%20LEETCODE-Easy/Hash%20Tables/Is-Panagram-sentence.js)
- [Max string pairs](./B1%20LEETCODE-Easy/Hash%20Tables/max-string-pairs.js)
- [Number of consistent strings when reversed](./B1%20LEETCODE-Easy/Hash%20Tables/number-of-consistent-strings.js)
- [Sort the people according to their heights](./B1%20LEETCODE-Easy/Hash%20Tables/Sort-the-people.js)
- [Unique Morse code](./B1%20LEETCODE-Easy/Hash%20Tables/unique-morse-code.js)

- [Linked List](./B1%20LEETCODE-Easy/Linked%20List/)

- [Intersection of Linked List](./B1%20LEETCODE-Easy/Linked%20List/intersection-of-linked-list.js)
- [Middle of Linked List](./B1%20LEETCODE-Easy/Linked%20List/middle-of-linked-list.js)
- [Linked List Cycle](./B1%20LEETCODE-Easy/Linked%20List/linked-list-cycle.js)
- [Palindrome Linked List](./B1%20LEETCODE-Easy/Linked%20List/palindrome-linked-list.js)
- [Remove duplicates from sorted list](./B1%20LEETCODE-Easy/Linked%20List/remove-duplicates-from-sorted-list.js)
- [Remove linked list elements](./B1%20LEETCODE-Easy/Linked%20List/remove-linked-list-elements.js)
- [Print linked list as string](./B1%20LEETCODE-Easy/Linked%20List/linked_list-to-string.js)
- [Get nth Element in a linked list](./B1%20LEETCODE-Easy/Linked%20List/nth-element.js)

- [Merging and Sorting](./B1%20LEETCODE-Easy/Merging%20and%20Sorting/)

- [Merge two sorted lists](./B1%20LEETCODE-Easy/Merging%20and%20Sorting/merge_two_sorted_lists.js)
- [Remove duplicates from sorted array](./B1%20LEETCODE-Easy/Merging%20and%20Sorting/remove_duplicates_from_sorted_array.js)

- [Recursion](./B1%20LEETCODE-Easy/Recursion/)

- [Power of 2](./B1%20LEETCODE-Easy/Recursion/power-of-2.js)
- [Power of 4](./B1%20LEETCODE-Easy/Recursion/power-of-4.js)
- [Print linked list as string](./B1%20LEETCODE-Easy/Linked%20List/linked_list-to-string.js)
- [Sum of array](./B1%20LEETCODE-Easy/Recursion/sum-of-array.js)
- [Sum all the numbers which are multiples of 3,5 and 7](./B1%20LEETCODE-Easy/Recursion/sum-multiples.js)
- [Get nth Element in a linked list](./B1%20LEETCODE-Easy/Linked%20List/nth-element.js)

- [Sliding Window](./B1%20LEETCODE-Easy/Sliding%20Window/)

- [Best time to buy and sell stock](./B1%20LEETCODE-Easy/Sliding%20Window/best-time-to-buy-and-sell-stocks.js)
- [Contains Duplicate 2](./B1%20LEETCODE-Easy/Sliding%20Window/contains-duplicate-2.js)

- [Stacks and Queues](./B1%20LEETCODE-Easy/Stacks%20and%20Queues/)

- [Backspace String Compare](./B1%20LEETCODE-Easy/Stacks%20and%20Queues/backspace-string-compare.js)
- [BaseBall Game](./B1%20LEETCODE-Easy/Stacks%20and%20Queues/baseball-game.js)
- [Max nesting depth](./B1%20LEETCODE-Easy/Stacks%20and%20Queues/max-nesting-depth.js)
- [Remove outermost Parentheses](./B1%20LEETCODE-Easy/Stacks%20and%20Queues/remove-outermost-parentheses.js)
- [Check if its valid parentheses](./B1%20LEETCODE-Easy/Stacks%20and%20Queues/valid-parentheses.js)

- [Strings](./B1%20LEETCODE-Easy/String/)

- [Two Sum](./B1%20LEETCODE-Easy/String/two-sum.js)
- [Palindrome Number](./B1%20LEETCODE-Easy/String/palindrome-number.js)
- [Roman to Integer](./B1%20LEETCODE-Easy/String/roman-to-integer.js)
- [Defanging IP address](./B1%20LEETCODE-Easy/String/defanging-ip.ts)
- [Final Value of Variable After Performing Operations](./B1%20LEETCODE-Easy/String/value-after-operation.ts)
- [Maximum Number of Words Found in Sentence](./B1%20LEETCODE-Easy/String/max-words-in-sentence.ts)
- [Jewels and Stones](./B1%20LEETCODE-Easy/String/jewels-and-stones.ts)
- [Goal Parser Interpretation](./B1%20LEETCODE-Easy/String/goal-parser.ts)

- [Trees](./B1%20LEETCODE-Easy/Trees/)

- [Construct height balanced binary tree using sorted array](./B1%20LEETCODE-Easy/Trees/create-tree-using-sorted-array.js)
- [Invert Binary Tree](./B1%20LEETCODE-Easy/Trees/invert-binary-tree.js)
- [Post order traversal](./B1%20LEETCODE-Easy/Trees/post-order-traversal.js)
- [Pre order traversal](./B1%20LEETCODE-Easy/Trees/pre-order-traversal.js)
- [Maximum depth of tree](./B1%20LEETCODE-Easy/Trees/max-depth.js)

- [Medium Level Problems](./B2%20LEETCODE-Medium/)

- [Array and Hashings](./B2%20LEETCODE-Medium/Array-and-Hashing/)

- [Group Anagrams](./B2%20LEETCODE-Medium/Array-and-Hashing/group-anagrams.js)
- [Longest Consecutive Sequence](./B2%20LEETCODE-Medium/Array-and-Hashing/longest-consecutive-sequence.js)
- [Product except self](./B2%20LEETCODE-Medium/Array-and-Hashing/product-except-self.js)
- [Encode and decode](./B2%20LEETCODE-Medium/Array-and-Hashing/encode-and-decode-tiny-url.js)
- [Search 2-D Matrix](./B2%20LEETCODE-Medium/Array-and-Hashing/search-2d-matrix.js)
-

- [Concepts](./B2%20LEETCODE-Medium/Concepts/)

- [Debouncing](./B2%20LEETCODE-Medium/Concepts/debouncing.js)

- [Linked List](./B2%20LEETCODE-Medium/Linked%20List/merge-nodes-between-zero.js)

- [Merge nodes between zero](./B2%20LEETCODE-Medium/Linked%20List/merge-nodes-between-zero.js)
- [Maximum Twin Sum of Linked List](./B2%20LEETCODE-Medium/Linked%20List/max-twinSum-of-linked-list.js)
- [Merge other linked list in between two nodes of previous list](./B2%20LEETCODE-Medium/Linked%20List/merge-in-between.js)
- [Remove Node having greater value anywhere to the right side of it](./B2%20LEETCODE-Medium/Linked%20List/remove-nodes.js)
- [Swap nodes in pairs of two](./B2%20LEETCODE-Medium/Linked%20List/swap-nodes.in-pairs.js)
- [Remove nth node from end of list](./B2%20LEETCODE-Medium/Linked%20List/remove-nth-node-from-end.js)
- [Two Sum](./B2%20LEETCODE-Medium/Linked%20List/sum-of-nodes.js)
- [Sort Colors](./B2%20LEETCODE-Medium/Array-and-Hashing/sort-colors.js)

- [Stacks and Queues](./B2%20LEETCODE-Medium/Stacks%20and%20Queues/)

- [Remove Node having greater value anywhere to the right side of it](./B2%20LEETCODE-Medium/Linked%20List/remove-nodes.js)

- [Backtracking](./B2%20LEETCODE-Medium/Backtracking/)

- [Permutations](./B2%20LEETCODE-Medium/Backtracking/permutations.js)
- [Subsets](./B2%20LEETCODE-Medium/Backtracking/subsets.js)
- [Subsets 2](./B2%20LEETCODE-Medium/Backtracking/subsets2.js)
- [Generate parenthesis](./B2%20LEETCODE-Medium/Backtracking/generate-parenthesis.js)
- [Letter Tile possibilities](./B2%20LEETCODE-Medium/Backtracking/letter-tiles-possibilities.js)

- [Binary Search](./B2%20LEETCODE-Medium/Binary-Search/)

- [Capacity to Ship Packages](./B2%20LEETCODE-Medium/Binary-Search/capacity-to-ship-packages.js)
- [Find Minimum in Rotated Sorted Array](./B2%20LEETCODE-Medium/Binary-Search//Find-Minimum-in-rotated-sorted-array.js)
- [Find First and Last Position of Element in a Sorted Array](./B2%20LEETCODE-Medium/Binary-Search/first-last-position-of-target-in-sorted-array.js)
- [Koko eating bananas](./B2%20LEETCODE-Medium/Binary-Search/koko-eating-bananas.js)
- [Search in Rotated Sorted Array](./B2%20LEETCODE-Medium/Binary-Search/Search-in-rotated-sorted-array.js)

- [Sliding Windows](./B2%20LEETCODE-Medium/Sliding%20Window/)

- [Fruits in Basket](./B2%20LEETCODE-Medium/Sliding%20Window/fruits-in-basket.js)
- [Longest repeating character replacement](./B2%20LEETCODE-Medium/Sliding%20Window/longest-repeating-character-replacement.js)
- [Longest Substring without repeating characters](./B2%20LEETCODE-Medium/Sliding%20Window/longest-substring-without-repeating-characters.js)
- [Number of subarrays](./B2%20LEETCODE-Medium/Sliding%20Window/number-of-subarrays.js)
- [Maximum Number of vowels in a Substring](./B2%20LEETCODE-Medium/Sliding%20Window/Maximum-number-of-vowels-in-a-substring.js)
- [Minimum Operations to reuduce X to 0](./B2%20LEETCODE-Medium/Sliding%20Window/min_operations_to_reduce_x_to_zero.js)
- [Minimum Size of subarray Sum](./B2%20LEETCODE-Medium/Sliding%20Window/minimum-size-subarray-sum.js)
- [Number of Subarrays](./B2%20LEETCODE-Medium/Sliding%20Window/number-of-subarrays.js)
- [Permutation in a string](./B2%20LEETCODE-Medium/Sliding%20Window/permutation-in-string.js)

- [String](./B2%20LEETCODE-Medium/String/)

- [Maxium Nesting Depth of two parethesis](./B2%20LEETCODE-Medium/String/Maximum-Nesting-Depth-of-Two-Valid-Parentheses.js)

- [Tress](./B2%20LEETCODE-Medium/Trees/)

- [Level order traversal of BST](./B2%20LEETCODE-Medium/Trees/Binary-tree-level-order-traversal.js)
- [Right Side View of BST](./B2%20LEETCODE-Medium/Trees/Binary-Tree-right-side-view.js)
- [Binary Search Tree to Greater Sum tree](./B2%20LEETCODE-Medium/Trees/BST-to-greater-sum-tree.js)
- [Check Completness of BST](./B2%20LEETCODE-Medium/Trees/Check-completness-of-BST.js)
- [Sum of Deepest Leaves](./B2%20LEETCODE-Medium/Trees/Deepest-leaves-sum.js)
- [Find duplicate subtrees](./B2%20LEETCODE-Medium/Trees/Find-duplicate-subtrees.js)
- [Flip Equivalent Binary Trees](./B2%20LEETCODE-Medium/Trees/Flip-Equivalent-Binary-Trees.js)
- [Count Good nodes in a Binary Tree](./B2%20LEETCODE-Medium/Trees/Good-Node.js)
- [Insert into BST](./B2%20LEETCODE-Medium/Trees/Insert-into-BST.js)
- [Kth smallest element](./B2%20LEETCODE-Medium/Trees/K-th-smallest-element.js)
- [Lowest common ancestor of BST](./B2%20LEETCODE-Medium/Trees/Lowest-common-ancestor-of-BST.js)
- [Maximum Binary Tree](./B2%20LEETCODE-Medium/Trees/Max-Binary-Tree.js)
- [Sum of Nodes with even valued grandparents](./B2%20LEETCODE-Medium/Trees/Sum-of-node-with-even-valued-grandparents.js)
- [Sum root to leaf number](./B2%20LEETCODE-Medium/Trees/Sum-root-to-leaf-numbers.js)
- [Validate Binary Search Tree](./B2%20LEETCODE-Medium/Trees/Validate-binary-search-tree.js)
- [Zig Zag level traversal](./B2%20LEETCODE-Medium/Trees/Zig-Zag-traversal.js)

- [Two Pointers](./B2%20LEETCODE-Medium/Two-Pointers/)
- [Array with elements not equal to average of neighbour](./B2%20LEETCODE-Medium/Two-Pointers/array-with-elements-ot-equal-to-average-of-neighbour.js)
- [Boats to save people](./B2%20LEETCODE-Medium/Two-Pointers/boats-to-save-people.js)
- [Container with max area](./B2%20LEETCODE-Medium/Two-Pointers/)
- [Maximise Confusion of a Exam](./B2%20LEETCODE-Medium/Two-Pointers/maximize-confusion-of-exam.js)
- [Remove Duplicates](./B2%20LEETCODE-Medium/Two-Pointers/remove-duplicates-from-sorted-array2.js)
- [Rotate Array](./B2%20LEETCODE-Medium/Two-Pointers/rotate-array.js)
- [2 Sum](./B2%20LEETCODE-Medium/Two-Pointers/Two-sum-2.js)
- [3 Sum](./B2%20LEETCODE-Medium/Two-Pointers/three-sum.js)
- [4 Sum](./B2%20LEETCODE-Medium/Two-Pointers/four-sum.js)