Algorithms
Algorithms copied to clipboard
Data Structures & Algorithms. Includes solutions for Cracking the Coding Interview 6th Edition
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)