Algorithm
This site is composed of notes for algorithm problems I solved, mainly on LeetCode (opens new window).
# What is an Algorithm
An algorithm is a sequence of steps, which solves a problem when carried out in order.
# Why I Am Doing This
While most people do LeetCode to find a (better) job, I do it for multiple reasons: review my algorithm knowledge, improve coding skills, and of course be ready to find a CS job.
# Languages
Now I use Python3.
# Java
As SN once told me Java is better to explain the underlying data structures than Python, I tried it for a while, until I realized that I cannot tolerate its verbosity anymore.
# C++
I can read many solutions in this language. However, C++ is known for a steep learning curve, and I don't think I have enough time and motives to embark on such a journey.
# Python 3
My officially first programming language is Python 2, from which I learned if
, for
, while
, simple but useful data structures like list
and map
, and finally even a little OOP before learning Java. Several years later, Python 2 is extinct and Python 3 inherits the simplicity and elegance.
Thus, now I am using Python 3 to solve algo problems.
# Blog Structure
Following is the structure for each blog:
- picture or link of problem
- code snippet/driver code if any
- solution
- state the brute force solution
- elaboration of algo
- time&space complexities
- code (the boilerplate
class Solution:
is ommited)
- follow up or note if any
# Coda
This is about this site if you are interested.
This is glossary if you don't get some abbreviations.