Overview

We can only see a short distance ahead, but we can see plenty there that needs to be done.

Topics to be covered :

  • String Algorithms
  • Number Theory
  • Data Structures
  • Searching Techniques
  • Computational Geometry

String Algorithms

  • KnuthMorrisPratt Algorithm
  • Aho Corasick Algorithm
  • Suffix Arrays
  • Suffix Trees
  • Manachar's Algorithm

KnuthMorrisPratt (KMP) Algorithm

Check whether a string W is a substring of another string S or not.

For example: bc is a substring of abcd whereas bd is not.

Takes O(|W|+|S|) time.

Aho Corasick Algorithm

It is used to find the occurrences of a word in the text.

Takes linear time.

Suffix Arrays

A sorted array of all the suffixes of a word.

Construction by various techniques and how they are used to solve most of the string problems.

Suffix Array of abac is [abac,ac,bac,c].

Suffix Trees

Tree based structure to store all the suffixes.

It allows particularly fast implementation of many string algorithms.

Construction by couple of techniques and using them to solve problems.

Manacher's Algorithm

Finding longest palindromic substring in Linear time.

Also we can find the length of palindromic substring centered at a certain position.

Data Structures

  • Arrays, stacks, queues
  • Linked List
  • Hash Tables
  • Binary Trees
  • Heaps
  • Tries
  • Segment Trees
  • Binary Indexed Trees
  • Range Minimum Query
  • Union Find Data Structure

Graphs (Basic)

  • Representation
  • Breadth First Search
  • Depth First Search
  • Topological Sort
  • Connected Components

Graphs (Next Level)

  • Dijkstra Algorithm
  • Floyd Warshall Algorithm
  • Bellman Ford Algorithm
  • Minimum Spanning Tree

Number Theory

  • Modulus Arithmetic
  • Euler's Totient Theorem
  • Chinese Remainder Theorem
  • Primality Test
  • Prime Generation Techniques
  • Wilson Theorem

Searching Techniques

  • Backtracking
  • Binary Search
  • Randomized Algorithm

Computation Geometry

  • Line Sweep Algorithm
  • Convex Hull
  • Area of union of circles

deck

By Pulkit Goyal

deck

  • 781