今天做了几道回溯的题目:字符串转ip地址、有重复数字的全排列、括号生成;
个人总结回溯的题目做的流程是先把每种可能的情况用一棵树画出来,然后把树上不符合题意的情况去掉(剪枝),且注意回溯函数结束的条件。
一般情况,函数返回值为void,函数的参数可以边写函数边填充,然后还有有时候需要注意回溯。但回溯操作有时候不是显示的,比如字符串转ip,因为本身就在遍历字符串,按照字符串的顺序走;括号生成,选择左右括号都是同一层的操作。但全排列需要考虑可以填充的元素是一定的,然后就要注意回溯(pop,push)。感觉这个差别我也还没完全把握,大概就是这个意思。
个人总结回溯的题目做的流程是先把每种可能的情况用一棵树画出来,然后把树上不符合题意的情况去掉(剪枝),且注意回溯函数结束的条件。
一般情况,函数返回值为void,函数的参数可以边写函数边填充,然后还有有时候需要注意回溯。但回溯操作有时候不是显示的,比如字符串转ip,因为本身就在遍历字符串,按照字符串的顺序走;括号生成,选择左右括号都是同一层的操作。但全排列需要考虑可以填充的元素是一定的,然后就要注意回溯(pop,push)。感觉这个差别我也还没完全把握,大概就是这个意思。
全部评论
相关推荐
11-25 00:18
华东师范大学 策略运营 点赞 评论 收藏
分享