Algorithms and Computer Science travis build travis build travis build

This repository is a collection of algorithms, data structures, their implementations, 350+ solved questions on from popular coding challenge websites such as leetcode.com, codeforces.com, hackerrank.com, geeksforgeeks.org, codechef.com, topcoder.com, acm.timus.ru, spoj.com and also some interview questions that many people are asked during the interview. Algorithms are implemented in Java. I will try to add C++ versions in the future. If you would like to do that or in any other languages, feel free to pull request.

The main intent of creating the repository is to learn algorithms and helping to those who want to improve problem solving skill. I will try do add new algorithms regularly.

Data Structures:

  1. List
    1. ArrayList
    2. LinkedList
  2. Queue
    1. PriorityQueue
    2. Queue by using array
    3. Queue by using linked list
  3. Stack
    1. Stack by using array
    2. Stack by using linked list
    3. Double stack
  4. Sorting
    1. O(N^2) Algorithms
      1. Insertion Sort
      2. Bubble Sort
      3. Selection Sort
    2. O(N log N) Algorithms
      1. Heap Sort
      2. Quick Sort
      3. Merge Sort
    3. Sub O(N log N) Algorithms
      1. Counting Sort
      2. Bucket Sort
      3. Radix Sort
  5. Searching
    1. Linear Search
    2. Binary Search
    3. Interpolation Search
  6. Hash Table
    1. Hash table implementation
  7. Recursion
    1. Palindrome
    2. Is Array Sorted
    3. Print Binary
  8. Tree
    1. Binary Search Tree(BST) implementation
    2. BST iteratation
    3. BST with duplicate elements
    4. Threaded Tree
    5. BST iterative without recursion
    6. Tries
  9. Balanced Tree
    1. AVL Tree
    2. Red Black Tree
  10. Graph
    1. Adjacency List
      1. Directed Graph
      2. Un-directed Graph
    2. Adjacency Matrix
      1. Directed Graph

Problems

Problems are divided into three categories. Most of the solved questions here from leetcode. Please visit the website leetcode.com to read the questions

  1. Easy. Solutions
  2. Medium. Solutions
  3. Hard. Solutions

Topics

Arrays

  1. Array Nesting
  2. Array Partition
  3. Bit Character
  4. Contains Duplicate
  5. Degree of an array
  6. Find All Numbers Disappeared in an Array
  7. Largest Number At Least

LinkedList

  1. Delete Node in a Linked List
  2. Reverse LinkedList
  3. Remove Duplicates from Sorted List
  4. Swap Nodes in Pairs
  5. Linked List Cycle
  6. Remove Nth Node From End of List
  7. Insertion Sort List

Math

  1. Add Strings
  2. Add two numbers
  3. Arranging coins
  4. Count Primes
  5. Excel Column
  6. Minimum moves equal
  7. Palindrome Number

Strings

  1. Add Binary
  2. Complex Number
  3. Detect Capital
  4. Judge Circle
  5. Longest Common Prefix
  6. Roman to Integer
  7. Valid Palindrome

Bit Manipulation

  1. Binary Number with Alternating Bits
  2. Hamming Distance
  3. Letter Case
  4. Number of one bits
  5. Power of four
  6. Power of two
  7. Single element

Tree

  1. Binary Tree Zigzag Level Order Traversal
  2. Delete Node in a BST
  3. Binary Tree Right Side View
  4. Binary Tree Level Order Traversal
  5. Binary Tree Preorder Traversal
  6. Find Largest Value in Each Tree Row
  7. Find Bottom Left Tree Value

Contribution

Oops ! Have you found a mistake ? Please, feel free to pull request !. Your work is really appreciated.

Oh, Thanks!

By the way... thank you! And if you'd like to say thanks... :)