Skip to content

These Questions are selected from various online coding websites to learn Algorithms for using in Competitive Programming.

Notifications You must be signed in to change notification settings

gauravkumar34/Data-Structure-Algorithm

Repository files navigation

cp cpcp

Competitive-Programming Preparation

These Questions are selected from various online coding websites to learn Algorithms for using in Competitive Prorgamming, but can be used for:

  • Competitive Programming
  • Practicing for Interviews
  • Improving Algorithmic Thinking
  • Practicing for College Class
  • FUN
_PS: I am saying "Any programming language" but in this course mostly I used C++ and python some C.

Resources

In this course we will use some tools for the questions. As I mentioned above all of these questions already exists, we just highlight them so that you can reach better. Here are the websites/tools that we use through this course:

DS

  • Stacks
  • Queues
  • Priority queue
  • Hashmap
  • Linked List
  • Trees
  • Heaps
  • Advanced Trees
    • Tries
    • Segment trees
    • Fenwick tree or Binary indexed trees
    • RMQ
  • SQRT Decomposition
  • Disjoint Data Structure
  • C++ STL (optional)

Algo

  • Number Theory

    • Prime Numbers (Sieve of Eratosthenes)
    • GCD and LCM Euclid’s Algorithm
    • Modular Exponentiation
    • Long arithmetic (Multi, Add)
    • Efficient Prime Factorization
  • Combinatorics(Probability-Combinations-Permutations-Matrix..)

  • Computational geometry

    • Primitive Operations
      • Intuition
      • Polygon Inside, Outside
      • Implementing CCW
      • Immutable Point ADT
    • Convex Hull
    • Closest pair problem
    • Line intersection
  • Sorting

    • QuickSort
    • Counting Sort
    • Merge Sort
  • Searching

    • Binary Search
    • Ternary Search
  • Graph Theory

    • Depth First Search (DFS)
    • Breadth First Search (BFS)
    • Dijkstra’s Shortest Path
    • Minimum Spanning Tree
    • Ford Bellman
    • Floyd Warshall
    • LCA (Lowest Common Ancestor)
    • Max Flow / Min Cut
  • Dynamic programming

    • Knapsack
    • Matrix chain multiplication
    • Coin Change
    • Kadane
    • Longest increasing Subsequence (with RMQ)
  • Strings

    • Z algorithm
    • Suffix Trees/Arrays
    • Knuth-Morris-Pratt Algorithm (KMP)
    • Rabin-Karp Algorithm
    • Hash
  • Bit Manipulation

  • Game theory

    • Nim game
    • Grundy numbers
    • Sprague-Grundy theorem
  • Optional Advanced Algorithms

    • AVL Trees
    • Graph Coloring
    • Mo's Algorithm
    • Palindromic Tree
    • Heavy Light Decomposition
    • Dynamic Programming by Profile
    • Rod Cutting
    • Topological Sorting
    • DP with Bitmask - Dynamic Programming
    • Diobhantine Equation - Math
    • Flood Fill - Graph

Curated resources

Coding Practices

Video Lectures

Interview Books

Guides

Courses

Sites

Videos

System Design

Computer Science News

New to programming; follow these resources:

* Codecademy
* Freecodecamp
* Progate
* Cs50 by Harvard university

About

These Questions are selected from various online coding websites to learn Algorithms for using in Competitive Programming.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published