Competitive Programming 🔆🔆
Hello Programmers💻, A one stop Destination for all your Competitive Programming Resources.
📌📌 What is Competitive Programming? 📌📌
According to us, competitive programming is a sport. A sport based on problem-solving skills, thinking ability, speed testing, regularity and to be precise. Competitive Programming will help you build logic and implement that logic to find solutions to a real-world problem. Brainstorming upon your code will definitely increase your coding skills as well as it will help to expand your thinking capacity. Thus practising Competitive Programming on day to day basis helps you in mastering that particular language. And believe us, if you are playing this sport regularly, you are already prepared for the technical rounds of the Interviews. So now let's dive in the ocean of Competitive Programming.
Platform to practice Competitive Programming 🔭🔭
-
HackerRank (Must do for a Beginner)
-
CodeChef
-
CodeForces
-
HackerEarth
-
Project Euler(For Mathematics)
-
GeeksForGeeks
-
LeetCode (For Data-Structures and Algos)
-
AtCoder
-
Sphere Online Judge(SPOJ)
Most Famous Programming Contests 👑 👑
Upcomming contests schedule - https://clist.by/
- Google KickStart🏆
- ACM ICPC (Olympics of Programming)🏆
- Google CodeJam🏆
- FaceBook Hacker Cup🏆
- TCS CodeVita🏆
- Google HashCode🏆
- CodeChef's SnackDown🏆
- Coding Block's CodeSule🏆
- Codechef Long Challenge🏆
- Codechef Cook-Off 🏆
- Codechef Lunchtime🏆
- Codeforces Rounds Div1 & Div2 🏆
Books
- Competitive Programming 3📚
- Data Structures and Algorithms Made Easy📚 - by Narasimha Karumanchi
- Cracking the Coding Interview📚 - by Gayle Laakmann McDowell
Algorithms
Code Visualisation
Learning Resources (Topic Wise) 🏁🏁🏁
Big O Notations
- CS Dojo - Introduction to Big O Notation and Time Complexity
- Simple Snippets - Asymptotic Analysis of Algorithms with Example
- Big-O CheatSheet https://www.bigocheatsheet.com/
STL in C++
-
Codealittle - https://www.youtube.com/watch?v=PCahjLFtlbY&list=PL1oKdRlSbldPUXbtWctRz14C1f8R78MVZ
-
Takeyouforward - https://www.youtube.com/watch?v=zBhVZzi5RdU&t=1s
Binary Search
Number Theory (Mathematics)
Recursion and BackTracking
- Aditya Verma - https://www.youtube.com/watch?v=kHi1DUhp9kM&list=PL_z_8CaSLPWeT1ffjiImo0sYTcnLzo-wY
- Codealittle - https://www.youtube.com/watch?v=-9FinR1AVys&list=PL1oKdRlSbldN8ffk23nuYQZwO0HSIPy9F
Bit Manipulations
- Codealittle - https://www.youtube.com/watch?v=5upadP-hWXQ&list=PL1oKdRlSbldNz2p_xrBMf2GhCKRm-cH2A
- codencode - https://www.youtube.com/watch?v=efL86JCONH0&list=PL2q4fbVm1Ik7ip1VkWwe5U_CEb93vw6Iu
Graph Theory
- CodeNcode - https://www.youtube.com/watch?v=VW85xQ6GJP4&list=PL2q4fbVm1Ik6DCzm9XZJbNwyHtHGclcEh
- Hitesh Tripathi - https://www.youtube.com/watch?v=1BPQYzCYDx4&list=PLJOYB9TDUqmlnn9mu11qHxxQK_ioX9Wdm
Dynamic Programing
- Tushar Roy - https://www.youtube.com/watch?v=8LusJS5-AGo&list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr
- GeeksforGeeks - https://www.youtube.com/watch?v=mmjDZGSr7EA&list=PLqM7alHXFySGbXhWx7sBJEwY2DnhDjmxm
- Aditya Verma - https://www.youtube.com/watch?v=mmjDZGSr7EA&list=PLqM7alHXFySGbXhWx7sBJEwY2DnhDjmxm
- TakeYouForward - https://www.youtube.com/watch?v=PPi3326JhGc&list=PLgUwDviBIf0pmD4Eur6Cl5XfBO4EtgKGe
Coding Platforms
- Beginners - Practice @ GeeksForGeeks
- Beginners - HackerRank (Must do for a Beginner)
- Beginners - HackerEarth
- Long Challenge and Short Contest - CodeChef
- Short Contest - CodeForces
- Mathematics - Project Euler
- Data Structures and Algorithms - LeetCode (For Data-Structures and Algos)
Important Data Structures:
-
Queue
-
Sets
-
Map
Searching
- Linear Search
- Binary Search
Sorting
- Selection Sort
- Bubble Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Radix Sort
- Count Sort
Mathematics:
Playlists
Number Theory
- Prime Number Generation (Sieve, Segmented Sieve)
- Euler Totient Theorem
- Fermat’s Theorem
- HCF & LCM (Euclid)
- Linear Diophantine Equations (Extended Euclid)
- Modulus Arithmetic (addition,multiplication,subtraction,modular Inverse)
Probability
- Basic Probability and Conditional Probability
- Random Variables
- Probability Generating Functions
- Expectation
- Probability Distribution [Binomial, Poisson, Normal,Bernoulli]
Linear Algebra
- Multiplication ( Strassen's algorithm ), Logarithmic exponentiation
- Matrix Transformations [ Transpose, Rotation Of Matrix, Representing Linear Transformations Using Matrix ]
- Determinant , Rank and Inverse Of Matrix [ Gaussian Elimination , Gauss Jordan Elimination]
- Solving System Of Linear Equations
- Matrix Exponentiation To Solve Recurrences
https://www.youtube.com/watch?v=_thN1Rp_FRA
Game Theory -Graphs:
Playlists
Graph Representation
- Adjacency Matrix
- Adjacency List
Graph Types
- Directed
- Undirected
- Weighted
- Unweighted
- Euler
Graph Concepts
- DFS
- BFS
- Strongly Connected Component
- Connected Component
- Cycle Detection
- Articulation Points
- Bridges
- Topological Sorting
- Bipartite Checking
- Flood-fill algorithm
Graph/Tree Algorithms
- Prim’s Algorithm
- Kruskal Algorithm
- Dijkstra
- Bellman Ford
- Floyd Warshall’s Algorithm
- Euler Tour
Dynamic Programming
Playlists
- Tushar Roy - https://www.youtube.com/watch?v=8LusJS5-AGo&list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr
- GeeksforGeeks - https://www.youtube.com/watch?v=mmjDZGSr7EA&list=PLqM7alHXFySGbXhWx7sBJEwY2DnhDjmxm
Classical Problems
- Fibonacci Series
- Longest Common Substring
- Longest Increasing Subsequence
- Longest Palindromic Substring
- Edit Distance
- Egg Dropping Puzzle
- Integer Knapsack
- Longest Common Subsequence
- Longest Substring Without Repeating Character
- Matrix Chain Multiplication
- Max Size Square Submatrix With One
- Maximum Length Chain