摘要:这道题和Palindrome Partitioning很像,都是怎么切数组的问题,唯一需要注意的是ip的规定 1)不能出现0和其他数字组合, 类似0.00.01.1。0只能单独出现或者在一个片段中不为开头的数字。 2)每一个片段数字最大为255 3)只能有四个片段 4)这里需要注意一个细节: 在这里
阅读全文
摘要:这道题是典型的深度优先搜索的问题, 可以多拿出来看看,和我之前做的subset以及permutation不一样的是这道题其实是排列组合中如何切数组的问题[a,a,a,a]-- [a|a|a|a] -> [a|a|aa] -> [a|aa|a] -> [a|aaa] ->[aa|a|a] ->[aa|
阅读全文
摘要:这道题也属于排列组合问题,所以用recursive。属于深度优先的题目。这道题和单纯的subset和permutation略有不同,因为是从不同数字代表的字母中选,而每个数字内部的组合不需要。 在想这道题的时候我们可以先想两个数字,就是从第一个的数字所代表的字母中依次选出,然后和下一个数字代表的字母
阅读全文
摘要:这道题比Combination Sum还要简单,因为每个数不能重复使用,所以只需要从下一个开始即可,和subset II一样
阅读全文
摘要:这个题和permutation很像,只是需要考虑重复的数字。重复的数字只有第一次出现的时候加入,保证永远都是第一个重复出现的数字在前,而且要加过(用used数组纪律的时候,重复数字第一个如果没有被mark,就应该跳过)。
阅读全文
摘要:这个题和组合很像,但是排列需要把所有的可能都列出来,所以不需要记住位置,每一层都是从0开始循环。相应的,它需要一个数组,在每一层的时候把是否加过这个数字记下来,最后remove的时候需要把这个flag归位。 (这个题还有非recursive的做法,需要再看)
阅读全文
摘要:这个题和permutation以及subset一样, 也属于排列组合问题, 用recursive做。 这种题的时间消耗都是指数级别的 注意for loop里面的第二个if语句是要除去重复的数列,例如{2,2,3,6,7} target 7, 第二个2不需要再次考虑,因为作用和第一个相同,需要注意的是
阅读全文
摘要:Given a list of numbers that may has duplicate numbers, return all possible subsets class Solution { /** * @param S: A set of numbers. * @return: A li
阅读全文
摘要:Given a set of distinct integers, return all possible subsets. 这是一道排列与组合的问题, 对于这种题目就是求所有的方案,其中90%是用搜索, 而搜素的题目90%会用到递归。 这类题目的模版 1)把现在结果加进去 2)用for loop做
阅读全文
摘要:Given two sorted integer arrays A and B, merge B into A as one sorted array. Notice You may assume that A has enough space (size that is greater or eq
阅读全文