https://medium.com/@yusragcelikel/30-days-of-leetcode-a-journey-through-algorithms-day-0-023749bd40d8