sudheerj/datastructures-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

A comprehensive collection of data structures and algorithms implemented in multiple programming languages. This repository serves as a resource for learning and practicing fundamental computer science concepts.

This repository contains implementations of various data structures and algorithms, organized by category. Each implementation includes:

  • Source code
  • Interactive playground (where available)
  • Documentation explaining the concept, approach, and complexity

The implementations are primarily in JavaScript, with some examples in other languages like Java, TypeScript, and Go.

No.NameSourceLiveDocumentationLevelPattern
1Stack using arraySourceJavaScript-EasyUsing Array operations
2Stack using linkedlistSourceJavaScript-EasyUsing LinkedList operations
No.NameSourceLiveDocumentationLevelPattern
1Queue using arraySourceJavaScriptDocumentationEasyUsing Array operations
2Queue using linkedlistSourceJavaScriptDocumentationEasyUsing LinkedList operations
No.NameSourceLiveDocumentationLevelPattern
1SinglyLinkedList implementationSourceJavaScriptDocumentationEasyLinked List operations
No.NameSourceLiveDocumentationLevelPattern
1DoublyLinkedList implementationSourceJavaScriptDocumentationEasyLinked List operations
No.NameSourceLiveDocumentationLevelPattern
1Binary Search TreeSourceJavaScriptDocumentationMediumTree operations
No.NameSourceLiveDocumentationLevelPattern
1Unweighted undirected graphSourceJavaScriptDocumentationMediumGraph operations
No.NameSourceLiveDocumentationLevelPattern
1HashTableSourceJavaScript-MediumHash operations
No.NameSourceLiveDocumentationLevelPattern
1Contains duplicatesSourcePlaygroundDocumentationEasySet/Object
2Two sum2- Input array sortedSourcePlaygroundDocumentationMediumTwo pointers
33 sumSourcePlaygroundDocumentationMediumTwo pointers
4Product of array except selfSourcePlaygroundDocumentationMediumPrefix and postfix pattern
5Max sum subarraySourcePlaygroundDocumentationMediumKadane's algorithm
6Minimum size subarray sumSourcePlaygroundDocumentationMediumSliding window
7Sort ColorsSourcePlaygroundDocumentationMediumTwo pointers
8Maximum product subarraySourcePlaygroundDocumentationMediumKadane's algorithm
9Find minimum in rotated sorted arraySourcePlaygroundDocumentationMediumBinary search technique
10Maximum Circular subarraySourcePlaygroundDocumentationMediumKadane's algorithm
11Rotate arraySourcePlaygroundDocumentationMediumTwo pointers
12Search in rotated sorted arraySourcePlaygroundDocumentationMediumBinary search
13Container with most waterSourcePlaygroundDocumentationMediumTwo pointers
14First missing positive numberSourceJavaScriptDocumentationHardIn-place hashing
15Best time to buy stock and sell stockSourceJavaScriptDocumentationEasyGreedy algorithm
16Two missing numbersSourceJavaScriptDocumentationMediumSum and average calculations
17Pascal's TriangleSourceJavaScriptDocumentationEasyArray traversal and sequential sum
18Remove ElementSourceJavaScriptDocumentationEasyArray traversal
19Can place flowersSourceJavaScriptDocumentationEasyArray traversal and comparison
20Majority ElementSourceJavaScriptDocumentationEasyBoyer Moore Voting algorithm
21Pivot IndexSourceJavaScriptDocumentationEasyArray traversal
22Range Sum queriesSourceJavaScriptDocumentationEasyArray traversal
23Disappeared numbersSourceJavaScriptDocumentationEasyArray traversal
24Identical pairsSourceJavaScriptDocumentationEasyArray traversal & map
25Destination CitySourceJavaScriptDocumentationEasyArray traversal & set
26Set mismatchSourceJavaScriptDocumentationEasyArray traversal & marking numbers
27Intersection of arraysSourceJavaScriptDocumentationEasySet and array traversal
29Special arraySourceJavaScriptDocumentationEasyFrequency counter and array traversal
No.NameSourceLiveDocumentationLevelPattern
1Longest substring without repeating charactersSourceJavaScriptDocumentationMediumSliding Window
2Longest repeating character replacementSourceJavaScriptDocumentationMediumSliding Window
3Minimum window substringSourceJavaScriptDocumentationHardSliding Window
4Valid anagramSourceJavaScriptDocumentationEasyFrequency counting
5Group anagramsSourceJavaScriptDocumentationMediumFrequency counting
6Valid palindromeSourceJavaScriptDocumentationEasyTwo pointer
7Longest palindromic substringSourceJavaScriptDocumentationMediumExpanding around center
8Palindromic substringsSourceJavaScriptDocumentationMediumExpanding around center
9Encode and decode stringsSourceJavaScriptDocumentationMediumBasic string and array operations
10Greatest common devisor of stringsSourceJavaScriptDocumentationEasyEuclidean and String operations
11Reverse words in stringSourceJavaScriptDocumentationMediumBasic string and array operations
12Length of last wordSourceJavaScriptDocumentationEasyString traversal
No.NameSourceLiveDocumentationLevelPattern
1Climbing stairsSourceJavaScriptDocumentationMediumDynamic programming
2Coin changeSourceJavaScriptDocumentationMediumDynamic programming
3Longest increasing subsequenceSourceJavaScriptDocumentationMediumDynamic programming(Bottom up)
4Longest common subsequenceSourceJavaScriptDocumentationMediumTwo-dimentional bottom up Dynamic programming
5Word breakSourceJavaScriptSourceMediumBottom up dynamic programming
6Combination Sum 4SourceJavaScriptDocumentationMediumBottom up Dynamic programming
7House robberSourceJavaScriptDocumentationMediumFibonacci pattern bottom-up dynamic programming
8House robber 2SourceJavaScriptDocumentationMediumBottom-up dynamic programming
9Decode waysSourceJavaScriptDocumentationMediumDynamic programming
10Unique pathsSourceJavaScriptDocumentationMediumDynamic programming
11Jump gameSourceJavaScriptDocumentationMediumDynamic programming or Greedy
No.NameSourcePlaygroundDocumentationLevelPattern
1Sum of two integersSourceJavaScriptDocumentationMediumBitwise operations
2Number of 1 BitsSourceJavaScriptDocumentationEasyBrian Kernighans
3Counting BitsSourceJavaScriptDocumentationEasyDynamic programming
4Missing numberSourceJavaScriptDocumentationEasyBitwise XOR
5Reverse BitsSourceJavaScriptDocumentationEasyBitwise operations
No.NameSourceLiveDocumentationLevelPattern
1Sort StackSourceJavaScriptDocumentationEasyStack push & pop
2Balanced BracketsSourceJavaScriptDocumentationMediumStack push and pop
3Reverse Polish NotationSourceJavaScriptDocumentationMediumStack push & pop
4Daily TemperaturesSourceJavaScriptDocumentationMediumMonotonic decreasing stack
5Number of People See In QueueSourceJavaScriptDocumentationMediumMonotonic decreasing stack
No.NameSourceLiveDocumentationLevelPattern
1Reverse sublistSourceJavaScriptDocumentationEasyList traversal
2Detect cycle in a linkedlistSourceJavaScriptDocumentationEasyFloyd's cycle-finding algorithm
3Merge two sorted listsSourceJavaScriptDocumentationEasyArithmetic comparison
4Merge K sorted listsSourceJavaScriptDocumentationHardDivide and conquer
5Remove Kth node from end of listSourceJavaScriptDocumentationMediumTwo pointers
6Reorder listSourceJavaScriptDocumentationMediumTwo pointers
7Find middle nodeSourceJavaScriptDocumentationEasyTwo pointers
8Find Kth node from end of listSourceJavaScriptDocumentationEasyTwo pointers
9Partition listSourceJavaScriptDocumentationMediumTwo pointers
10Remove duplicatesSourceJavaScriptDocumentationEasyTwo pointers
11Binary to decimalSourceJavaScriptDocumentationEasyList traversal and math operations
No.NameSourceLiveDocumentationLevelPattern
1Swap first and lastSourceJavaScriptDocumentationEasySwap nodes
2Palindrome checkSourceJavaScriptDocumentationEasyTwo pointers
3Swap node pairsSourceJavaScriptDocumentationMediumList traversal and pointer updates
No.NameSourceLiveDocumentationLevelPattern
1Maximum depth of binary treeSourceJavaScriptDocumentationEasyDFS with recursion
2Same treeSourceJavaScriptDocumentationEasyDFS with recursion
3Invert or Flip binary treeSourceJavaScriptDocumentationEasyDFS with recursion
4Binary tree maximum path sumSourceJavaScriptDocumentationHardDFS using recursion
5Binary tree level order traversalSourceJavaScriptDocumentationEasyBFS traversal
6Serialize and deserialize binary treeSourceJavaScriptDocumentationHardDFS preorder traversal
7Subtree of another treeSourceJavaScriptDocumentationEasyDFS with recursion
8Construct binary tree from traversalsSourceJavaScriptDocumentationMediumDFS with recursion
9Validate BSTSourceJavaScriptDocumentationMediumDFS using recursion
10Kth smallest element in BSTSourceJavaScriptDocumentationMediumInorder traversal
11Lowest Common Ancestor of BSTSourceJavaScriptDocumentationMediumTree traversal
12TrieSourceJavaScriptDocumentationMediumString character iteration
13Design and Search words DatastructureSourceJavaScriptDocumentationMediumTrie and DFS recursion
14Word search 2SourceJavaScriptDocumentationHardBacktracking with Trie
No.NameSourceLiveDocumentationLevelPattern
1Clone graphSourceJavaScriptDocumentationMediumDFS using recursion
2Course scheduleSourceJavaScriptDocumentationMediumDFS using recursion
3Pacific Atlantic waterflowSourceJavaScriptDocumentationMediumDFS using recursion
4Number of IslandsSourceJavaScriptDocumentationMediumDFS using recursion
5Alien dictionarySourceJavaScriptDocumentationHardTopological sorting
6Graph valid treeSourceJavaScriptDocumentationMediumUnion Find algorithm
7Number of connected componentsSourceJavaScriptDocumentationMediumUnion Find algorithm
8Walls and gatesSourceJavaScriptDocumentationMediumBFS traversal
No.NameSourceLiveDocumentationLevelPattern
1Set matrix zerosSourceJavaScriptDocumentationMediumIn-place updates
2Spiral matrixSourceJavaScriptDocumentationMediumBoundary traversal
3Rotate imageSourceJavaScriptDocumentationMediumIn-place rotation
4Word searchSourceJavaScriptDocumentationMediumDFS using recursion
No.NameSourceLiveDocumentationLevelPattern
1Insert intervalSourceJavaScriptDocumentationMediumMath operations
2Merge intervalSourceJavaScriptDocumentationMediumSorting and math operations
3Non-overlapping intervalsSourceJavaScriptDocumentationMediumGreedy algorithm
4Meeting roomsSourceJavaScriptDocumentationMediumGreedy algorithm
5Meeting rooms 2SourceJavaScriptDocumentationMediumTwo pointers
No.NameSourceLiveDocumentationLevelPattern
1DuplicatesSourceJavaScriptDocumentationEasyUsing Map
2Two sumSourceJavaScriptDocumentationEasyUsing Map
3First non repeating characterSourceJavaScriptDocumentationEasyUsing Map
4Group anagramsSourceJavaScriptDocumentationMediumMap methods
5Verify Common ElementsSourceJavaScriptDocumentationEasyMap methods
6Longest consecutive sequenceSourceJavaScriptDocumentationMediumSet operations
7Valid SudokuSourceJavaScriptDocumentationMediumMap and Set methods
8Letter combinationsSourceJavaScriptDocumentationMediumBacktracking with hash mapping
9LRU CacheSourceJavaScriptDocumentationMediumHash Table with linked list
10Maximum number of balloonsSourceJavaScriptDocumentationEasyCharacter frequency map
11Isomorphic StringsSourceJavaScriptDocumentationEasyCharacter mapping
14First unique characterSourceJavaScriptDocumentationEasyCharacter frequency count
No.NameSourceLiveDocumentationLevelComplexity
1Bubble sortSourceJavaScriptDocumentationEasyTC: O(n²), SC: O(1)
2Selection sortSourceJavaScriptDocumentationEasyTC: O(n²), SC: O(1)
3Insertion sortSourceJavaScriptDocumentationEasyTC: O(n²), SC: O(1)
4Merge sortSourceJavaScriptDocumentationMediumTC: O(n log n), SC: O(n)
5Quick sortSourceJavaScriptDocumentationMediumTC: O(n²), SC: O(log n)
6Heap sortSourceJavaScriptDocumentationHardTC: O(n log n), SC: O(1)

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages