DFS

  个人瑕疵理解。dfs以作为深度优先搜索,我认为可以以树状图来理解。外层有一个for循环来控制在某一步的时候,这一步可以取得的所有的值,然后再一一进行发散,即在这一步后的子步也在for循环中,重复上一步的方法,使得子步骤也得到所有想要的值。

  如何进行子步骤呢?需要调用自己本身,并且step+1。


void dfs(int step){

          判断边界

          尝试每一种可能 for(i=1;i<=n;i++){

          继续下一步 dfs(step+1)

          }

          返回

}


  个人觉得dfs应该只是适用于数组,这样才可以控制步骤的进行。使用dfs之后可以得到想要条件下的所有的可能行,使每一种可能得到后与所需结果相比较,然后得到结果,所以一般来说是没有储存可能结果的值。

  写下的内容可能只有我自己能看明白,但我觉得这对于每个人来说都是值得尝试的一个学习方法。这样的方法并不需要我们将知识能够很清楚、清晰的传递出来,我们可以以自己喜欢的方式呈现,因为这不是做给别人看的题解,而是通过写下文章使得自己能够更充分理解知识的方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 首先考虑一道奥数题目: □□□ + □□□ = □□□,要将数字1~9分别填入9个□中,使得等式成立。例如173+...
    SHY圆圆圈圈圆圆阅读 8,850评论 4 7
  • BFS BFS是一个先入先出的过程,所以用队列来存储有效状态。 步骤 创建队列,以便后续将有效状态放入其中 创建标...
    Mine4ever_阅读 4,278评论 0 0
  • 一、动态规划 找到两点间的最短路径,找最匹配一组点的线,等等,都可能会用动态规划来解决。 参考如何理解动态规划中,...
    小碧小琳阅读 25,524评论 2 20
  • 看到学校里各位大佬都写了一点各种算法,我也来凑凑热闹吧。也不敢写一些高大上的,就写DFS吧。 DFS,就是深度优先...
    TERRY2004阅读 4,879评论 0 6
  • 排列专题: 首先基本功就是全排列,全排列又分,含重复元素和不含重复元素。解决全排列的方法又分为SWAP法,和VIS...
    西部小笼包阅读 3,153评论 0 1

友情链接更多精彩内容