divide and conquer algorithm leetcode