39. 组合总和
思路:递归法加回溯。递归函数里包括startIndex,由于所求组合元素可以重复,递归函数的startIndex依旧保持为startIndex的值。剪枝操作体现在把所给candidates排序后,如果遇到sum大于targetSum后,后面的组合就不用再遍历了(因为肯定会大于targetSum)。
40.组合总和II
思路:有去重的过程。使用used数组,标记某个位置的元素是否被使用过。去重是排序后如果给定数组中的元素和前一个元素一样并且还没有被用过,就跳过这个元素以及其接下来的递归遍历。
131.分割回文串
思路:分割加判断是否为回文。把分割问题想象成找子字符串(某个区间内的一串(index,i]),由此来找回文字符串的分割方式。