Competitive Programming

Combines two topics, the design and implementation of algorithms…

Design: Problem solving and mathematical thinking. This is the creative and problem solving part. Algorithms need to be both correct and efficient (obviously in that order). In typical competitive programming, a solution to a problem involves well-known techniques and new insights. Here, I’m using competitive programming as an avenue to get really good at Leetcode. Leetcode is more about memorization of well-known techniques and quick implementation in an interview setting.

Implementation: This requires good programming skills. Good coding style is code that is straightforward and concise. Solutions need to be written quickly.

Most people in CP use C++ as their primary language for it’s efficiency and the large library of available data structures and algorithms.

Mind Map

War is over

I started competitive programming as a way to get better at Leetcode, before realizing it was way overkill. This is actually more similar to ECE406 (algorithms), where it was typically about learning how to formulate general algorithms for solving problems.

I took an indefinite break from algorithms to grind Leetcode which I also took an indefinite break from once I signed an offer in 4B.