personal solutions to the leetcode problems