Leetcode 287 Solution