Skip to content
/ Algorithms Public

Data Structures & Algorithms. Includes solutions for Cracking the Coding Interview 6th Edition

License

Notifications You must be signed in to change notification settings

Dbz/Algorithms

Folders and files

NameName
Last commit message
Last commit date
Feb 23, 2020
Feb 23, 2020
Feb 23, 2020
Feb 23, 2020
Sep 26, 2017
Jul 1, 2017
Feb 23, 2020
Jul 6, 2017
Jul 9, 2017
Feb 23, 2020
May 17, 2021
Jul 9, 2017
May 14, 2018
Jun 27, 2017
Dec 28, 2015

Repository files navigation

Data Structures & Algorithms Repository

This is repository of data structures and algorithms written in JavaScript and Ruby. Some of the algorithms are from Cracking the Coding Interview by Gayle Laakmann McDowell .

Contributing

Contributions are welcome! Please read the Contributing guidelines and the Code of Conduct on how to contribute. This project is Licensed under the MIT License.

Ruby Instructions:

To run Ruby specs, execute the rspec command in the terminal

JavaScript Instructions:

To run JavaScript specs, execute the rake jasmine command in the terminal. Then open a web browser to http://localhost:8888/

Algorithms & Data Structures

Key
- (R) means Ruby
- (JS) means JavaScript
- (P) means Python
- (CtCI) means Cracking the Coding Interview
- (DP) means Dynamic Programming
  • Array - Binary Search Tree From Array (R)
  • Array - Contains Duplicate (JS)
  • Array - Difference Between Arrays (R)
  • Array - Find Single Number (R)
  • Array - Highest Product of 3 (JS)
  • Array - Longest Common Prefix (R)
  • Array - Majority Element (JS)
  • Array - Make Change (CtCI)(JS)(R)
  • Array - Maxiumum Subsequence (CtCI)(DP)(R)
  • Array - Merge Two Sorted Lists (JS)(R)
  • Array - Min Change Sum (CtCI)(DP)(R)
  • Array - Missing Number (CtCI)(R)
  • Array - Product of All Ints Except @ Index (JS)
  • Array - Quicksort (JS)
  • Array - Remove Value (JS)
  • Array - Rotate Array (R)
  • Array - Rotate Matrix (CtCI 1.7)(R)(P)
  • Array - Shuffle in Place (R)
  • Array - Stock Picker (JS)
  • Array - Subsets (JS)
  • Array - Summary Ranges (R)
  • Array - Transpose (JS)
  • Array - Traverse Spiral Matrix (R)
  • Array - Two Sum (R)
  • Array - Zero Matrix (CtCI 1.8)(R)(P)
  • Data Structure - Binary Tree (JS)(R)
  • Data Structure - Doubly Linked List (R)
  • Data Structure - Hash Table (JS)
  • Data Structure - Min Heap (R)
  • Data Structure - Queue (JS)
  • Data Structure - Queue with Two Stacks (CtCI)(JS)
  • Data Structure - Singly Linked List (R)
  • Data Structure - Stack (JS)(R)
  • Data Structure - Stack with Two Queues (CtCI)(JS)
  • Data Structure - Tree (JS)
  • Data Structure - Trie (JS)
  • Graph - Balanced Binary Tree (R)
  • Graph - Binary Tree Inorder Traversal (R)
  • Graph - Binary Tree Preorder Traversal (R)
  • Graph - Binary Tree to Linked List (R)
  • Graph - Breadth First Search (JS)(R)
  • Graph - Danny Search (R)
  • Graph - Depth First Search (JS)(R)
  • Graph - Dijkstras (R)
  • Graph - Invert Binary Tree (JS)(R)
  • Graph - Is Same Tree (JS)
  • Graph - Largest Internal Binary Search Tree (R)
  • Graph - Lowest Common Ancestor in BST (CtCI)(R)
  • Graph - Maximum Depth of Binary Tree (JS)(R)
  • Graph - Minimum Depth of Binary Tree (JS)(R)
  • Graph - Path Between Two Nodes (CtCI)(R)
  • Graph - Root to Leaf Paths (R)
  • Graph - Second Largest Value in Binary Tree (JS)
  • Graph - Symmetric Binary Tree (JS)
  • Graph - Topological Sort (R)
  • Graph - Tree Breadth First Search (R)
  • Graph - Tree Path Equals Sum (CtCI)(R)
  • Graph - Valid Binary Tree (R)
  • Linked List - Add Reverse Linked List Digits (CtCI)(R)
  • Linked List - Animal Shelter (CtCI 3.6)(R)
  • Linked List - Delete Kth Node in Linked List (R)
  • Linked List - Delete Node in Linked List (JS)
  • Linked List - Delete Middle Node in Linked List (CtCI 2.3)(R)
  • Linked List - Find Linked List Cycle (CtCI)(R)
  • Linked LIst - Intersection of two lists (CtCI 2.7)(R)
  • Linked List - Linked List Palindrome (CtCI)(R)
  • Linked List - Loop Detection (CtCI 2.8)(R)
  • Linked List - Palindrome (CtCI 2.6)(JS)(R)(R2)
  • Linked List - Partition Linked List (CtCI)(R)
  • Linked List - Return Kth to last node (CtCI 2.2)(R)
  • Linked List - Remove Duplicates in Linked List (CtCI 2.1)(R)
  • Linked List - Reverse Linked List (JS)
  • Linked List - Sum Lists (CtCI 2.5)(R)
  • Misc - Climbing Stairs (JS)
  • Misc - Count Primes (R)
  • Misc - Digital Root (JS)
  • Misc - Fibonacci Number (JS)
  • Misc - First Bad Version (R)
  • Misc - Hamming Weight (JS)
  • Misc - HiCal (JS)
  • Misc - Pascal's Triangle (R)
  • Misc - Power of 2 (JS)
  • Misc - Rate Limiter (R)
  • Misc - Seive of Erastenous (R)
  • Stack - Sort Stack (CtCI 3.5)(R)
  • String - Add Binary (R)
  • String - Anagrams (JS)(R)
  • String - Balanced Parens (JS)
  • String - String Compression (CtCI 1.6)(R)(P)
  • String - Caeser Cipher (R)
  • String - Encode URL (CtCI)(R)
  • String - Is Substring (CtCI)(R)
  • String - Isomorphic Strings (R)
  • String - One Edit Away (CtCI)(R)(P)
  • String - Permutation Palindrome (CtCI 1.4)(JS)(R)(P)
  • String - Permutation Strings (CtCI 1.2)(R)(P)
  • String - Remove Duplicates in Text (R)
  • String - Reverse Characters and String (CtCI)(R)
  • String - Roman Numeral -> Integer (JS)
  • String - String Rotation (CtCI 1.9)(R)
  • String - Substrings (JS)
  • String - Unique Characters (CtCI 1.1)(R)(P)
  • String - Valid Anagram (JS)