https://medium.com/@kapilchauhan/mastering-leetcode-effective-strategies-for-problem-solving-3c232d59e54e