回溯算法初学

回溯算法初学

  • 解题步骤
    • 设计 递归函数的参数
    • 设置return条件(是否越界、是否在访问已访问过的节点、是否完成了任务)
    • 单层递归逻辑
  • 代码模板
全局变量X
void backtracking(参数){
		if(返回条件)  return
		for( i ){
			操作X
			bcaktracking(i);
			撤销操作X  **** 这里是回溯算法的核心,当回到上层调用时,要把执行过的操作撤销掉。
	}
}
  • 回溯与递归的联系
    • 回溯都是通过递归实现的
    • 在一些问题中,如果把全局变量当做参数放进递归函数里,当 当前层执行完毕返回上一层时,调用栈会自动撤销当前层的操作,不用自己在上一层里在手动实现撤销。
    • 但是某些问题可能无法只通过递归实现,而且使用全局变量+回溯有时候可能想起来更思路更清楚。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值