practice algorithmic problems from Leetcode