Leetcode hard