子集和组合问题,基本相同,区别在于添加到res时候,子集不需要判断大小,因为所有长度都要;
组合需要判断大小track等于k的时候,才添加到结果
在更新选择列表的时候,用start来进行数组区间的分隔。
排列问题,与子集组合问题差别在于,它的树结构是一颗对称的、完全n叉树,遍历N叉树即可
添加结果时,判断长度是否等于len(nums)即可;
在更新选择列表时候,用nums[i] in track来去掉已经选择过的元素。
通用的回溯框架为:
子集和组合问题,基本相同,区别在于添加到res时候,子集不需要判断大小,因为所有长度都要;
组合需要判断大小track等于k的时候,才添加到结果
在更新选择列表的时候,用start来进行数组区间的分隔。
排列问题,与子集组合问题差别在于,它的树结构是一颗对称的、完全n叉树,遍历N叉树即可
添加结果时,判断长度是否等于len(nums)即可;
在更新选择列表时候,用nums[i] in track来去掉已经选择过的元素。
通用的回溯框架为: