I think competitive programming is a great opportunity for those who want to improve their skills, because it pushes us to think creatively, and helps us to put into practice our math knowledge (we thought we'd never use) in order to solve real-world problems.
Here are my solutions to some challenges from several programming platforms, contests, and interviews.
I try really hard to find the most efficient solution, but (unfortunately) sometimes I just really can't (and appeal to brute force), because I'm still learning the power of each data structure, technique, language, and paradigm (and I'll always be). However, after some research, I always end up discovering awesome articles and inspiring codes which improve my programming skills.
When I feel inspired, I try to document these codes (exploring time and space complexity) to facilitate the understanding of what I'm doing.
You can also check this playlist that I've been maintaining on Youtube (to try) to explain my coding process.
Currently, I integrate the GEMP - UFC/CRT, a group of studies from college, that solves URI Online Judge problems, and also participates in contests within the platform.
- Aizu Online Judge
- AlgoDaily
- AtCoder
- CheckiO
- CodeChef
- Codeforces
- Code Gym
- Coderbyte
- CodeSignal
- Codewars
- Codingame
- Code Submission Evaluation System
- CS Academy
- Daily Coding Problems
- DevSkill
- E-Olymp
- Edabit
- Exercism
- Fuzhou University OnlineJudge
- GeeksForGeeks
- HackerEarth
- HackerRank
- Kattis
- LeetCode
- Neps Academy
- Peking University JudgeOnline
- Programmr
- Project Euler
- Sphere Online Judge
- TechGig
- Timus Online Judge
- TopCoder
- URI Online Judge
- UVa Online Judge
- Zhejiang University Online Judge
- Code Jam
- DWITE
- Hash Code
- Kick Start
- International Olympiad in Informatics
- Olimpíada Brasileira de Informática
- Kaggle Competitions
- Maratona de Programação
- International Collegiate Programming Contest
- Facebook Hacker Cup
- Guide to Competitive Programming - Learning and Improving Algorithms Through Contests (Antti Laaksonen)
- Programming Challenges: The Programming Contest Training Manual (Steven Skiena)
- Competitive Programming
- The Algorithm Design Manual (Steven Skiena)
- Algorithms (Robert Sedgewick)
- Introduction to Algorithms (Thomas Cormen)
- Think in C++ (Bruce Eckel)
- Looking for a Challenge 2 (University of Warsaw)
- Cracking the Coding Interview (Gayle McDowell)
- CLion
- Visual Studio Code
- Geany
- CodeBlocks
- Dev-C++
- Spyder
- Idle
- Eclipse
- NetBeans
- Intellij IDEA
- CodeLite
- An awesome list for competitive programming (Codeforces)
- Coding Interview Glossary (Interview Cake)
- Time and Space Complexity Tutorials & Notes (HackerEarth)
- Competitive Programming - Computational Complexity (TopCoder)
- Analysis of Algorithms - Big-O analysis (GeeksforGeeks)
- T-414-ÁFLV: A Competitive Programming Course
- The Simplicity of Computational Complexity (Hacker Noon)
- Top 10 Algorithms and Data Structures for Competitive Programming (GeeksForGeeks)
- Maratonas de Programação: Tudo o que Você Precisa Saber (Programador Sagaz)
- Programming Competitions - Codeforces, Code Jam, ... (Errichto)
- How To Become Red Coder? (Errichto)
- Introduction to Big O Notation and Time Complexity (CS Dojo)
- Deeply Understanding Asymptotic Analysis (Back To Back SWE)
- Dynamic Programming, Recursion, & Backtracking (Back To Back SWE)
- Graphs, Greedy Algorithms, & Other (Back To Back SWE)
- Wolfram MathWorld
- ProofWiki
- Be a Better Programmer with these 45 Mathematics Courses (Hacker Noon)
- Coding Math
- Maths for Programmers (freeCodeCamp)
- The Math Needed for Computer Science (Zach Star)