回溯: 形状像树,状态A/B,回到上一层,选不选
DFS:逐字匹配(坐标移动),在bottom level的基础上加东西!
回溯法与普通DFS的区别在于:回溯法需要还原之前的场景。
假设我们DFS处理的时候不剪枝,那么就是这样:
尝试往前走一步(尝试一个当前的可能解)
标记当前格为X
if ( DFS(step+1)) return true; //前往下一个可能解
解除当前格标记
回溯: 形状像树,状态A/B,回到上一层,选不选
DFS:逐字匹配(坐标移动),在bottom level的基础上加东西!
回溯法与普通DFS的区别在于:回溯法需要还原之前的场景。
假设我们DFS处理的时候不剪枝,那么就是这样:
尝试往前走一步(尝试一个当前的可能解)
标记当前格为X
if ( DFS(step+1)) return true; //前往下一个可能解
解除当前格标记