Leetcode Solution 30