Project Overview

  • The purpose of this repo is to help others to find solutions and explaintion
  • I will commit a solution and explanation to every problem I solve
  • I aim to solve about 3-4 questions a day and update every week
  • Solutions will be stored by pattern and difficulty
  • Problems will be from LeetCode.
  • If you notice any errors in my code, or perhaps optimisations I could make, please let me know!

Weekly Challenge

1. Week1

2. Week2



1. Dynamic Programming

2. hashmap

3. linkList

4. slidingWindows

For Contributors

1. Clone the repository (if you are a new contributor)

git clone

2. If you are adding a new question pattern, do so in the 'patterns' directory at /src/com/patterns. Then update the README appropriately.

3. If you have new problems, put it in 'problems' file, then pull request, we will try to solve it. See it, say it, sorted it.

4. If you are adding a new difficulty to one of the patterns, remember to update the README appropriately.

5. If you are adding a new question, ensure it is added to the correct pattern, difficulty and language directory.

6. When adding a new question, ensure the filename is the name of the question

7. At the top of each question file, include:

  • A brief of what the question/problem is
  • Where this question came from (e.g. LeetCode question number)
  • Example input, expected output of the example input (similar to how leetcode does it)
  • Short explanation why that is the output (similar to how leetcode does it)

8. If you add a new question file, also add a markdown file of the same name. Use this file to explain the logic of your solution such as in terms of how it utilises the pattern.

GitHub - Vincent-Zhenhao-ZHAO/CodeChallenge at
A repo to record how I prepare my Interview, and really hope it can help you as well. Really appreciate Kieran's help in the pattern's part. - GitHub - Vincent-Zhenhao-ZHAO/CodeChallenge at...