Recently I am motivated to solve some algorithmic problems. I will be picking five challenges from LeetCode everyday, including three medium and two hard challenges. I expect that I will be spending two hours per day on solving those challenges. There are some objectives that I want to achieve: To think algorithmically again To not rely on the test cases for debugging, nor the hints To write more self-explanatory code To learn (or re-learn) more algorithms To prove my approach is valid if it ...