# DS and Algorithms

/DS and Algorithms
­

## [Leetcode] Remove Nth Node From End of List

Given a linked list, remove the nth node from the end of list and return its head.

November 14th, 2015|Categories: DS and Algorithms, Linked List||

## An easy way to understand algorithm complexity and big O notation

Easy to understand algorithm's time and space complexity with big o notation.

November 18th, 2015|Categories: Algorithm Complexity, DS and Algorithms||

## FIxed Size Array

Introduce fixed size array

November 13th, 2015|Categories: Array, DS and Algorithms|Tags: , |

## Dynamically Resizing Array

A dynamically resizing array is an array that resizes itself as needed

November 13th, 2015|Categories: Array, DS and Algorithms|Tags: , |

## String and StringBuffer

Introduce string and string buffer

November 14th, 2015|Categories: DS and Algorithms, String|Tags: , |

A basic linked list is a da data stucture of nodes in which every previous node has a reference to the next node.

November 14th, 2015|Categories: DS and Algorithms, Linked List|Tags: , |

## Hash Table

A hash table is a data structure that maps keys to values for highly effient lookup.

November 14th, 2015|Categories: DS and Algorithms, Hash|Tags: , |

## Stack

A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle.

November 14th, 2015|Categories: DS and Algorithms, Stack|Tags: , |

## Queue

A queue is a container of objects (a linear collection) that are inserted and removed according to the first-in first-out (FIFO) principle.

November 14th, 2015|Categories: DS and Algorithms, Queue|Tags: , |

## Representing Graph and Tree

Representing a graph or tree by a matrix or adjacent node lists.

November 14th, 2015|Categories: DS and Algorithms, Graph|Tags: , |

## Tree

A tree is a data structure consisting of nodes organised as a hierarchy

November 14th, 2015|Categories: Tree|Tags: , |

## Binary Tree

A binary tree is a tree data structure in which each node has at most two children

November 14th, 2015|Categories: DS and Algorithms, Tree|Tags: , , |

## Binary Tree Traversal

Introduce the 3 types of Binary tree traversal - pre-order traversal, in-order traversal and post-order traversal.

November 14th, 2015|Categories: DS and Algorithms, Tree|Tags: , , |

## BST:Binary Search Tree

Introduce the concept of BST and the related algorithms

November 14th, 2015|Categories: DS and Algorithms, Tree|Tags: , , |

## Height Balanced Tree

A tree is height-balanced if the heights of the left and right subtree's of each node are within 1.

November 14th, 2015|Categories: DS and Algorithms, Tree|Tags: , , |

## Complete Tree and full Binary Tree

Introduce Complete Tree and Full Tree

November 14th, 2015|Categories: DS and Algorithms, Tree|Tags: , , |

## Depth First Search (DFS) and Breath First Search (BFS)

The two main methods to traverse each node in a graph - Depth First Search and Breath First Search.

November 14th, 2015|Categories: DS and Algorithms, Searching|Tags: , , , , |

## Bubble Sort

Introduce Bubble Sort

November 14th, 2015|Categories: DS and Algorithms, Sorting|Tags: , |

## Selection Sort

Introduce Selection Sort

November 14th, 2015|Categories: DS and Algorithms, Sorting|Tags: , |

## Insertion Sort

Introduce Insertion Sort

November 14th, 2015|Categories: DS and Algorithms, Sorting|Tags: , |

## Merge Sort

Introduce Merge Sort

November 14th, 2015|Categories: DS and Algorithms, Sorting|Tags: , |

## Quick Sort

Introduce Quick Sort

November 14th, 2015|Categories: DS and Algorithms, Sorting|Tags: , |

## Sorting Algorithms Comparison

Compares pros and cons of different sorting algorithms

November 14th, 2015|Categories: DS and Algorithms, Sorting||

## Binary Search

Introduce Binary Search

November 14th, 2015|Categories: DS and Algorithms, Searching|Tags: , |

## Recursion

Recursion solves a problem by solving one or more sub-states of the problem itself.

November 14th, 2015|Categories: DS and Algorithms, Recursion|Tags: , |

## Dynamic Programming Theory

Introduce what is and when to use dynamic programming.

November 14th, 2015|Categories: DS and Algorithms, Dynamic Programming, Recursion|Tags: , |

## Dynamic Programming Example: Longest Common Subsequence

Introduce a classic dynamic programming problem: Longest Common Subsequence (LCS)

November 14th, 2015|Categories: DS and Algorithms, Dynamic Programming|Tags: , |

## Dynamic Programming Example: The Knapsack Problem

Introduce a classic dynamic programming problem: The Knapsack Problem

November 14th, 2015|Categories: DS and Algorithms, Dynamic Programming|Tags: , |

## Bit Manipulation

This post introduces basic operations and tricks about bit manipulation.

November 14th, 2015|Categories: Bit Manipulation, DS and Algorithms|Tags: , |

## [Leetcode] Contains Duplicate

Given an array of integers, find if the array contains any duplicates.

November 14th, 2015|Categories: DS and Algorithms, Hash||