Leetcode 649 Solution