Javascript 深度搜索时怎么实现递归调用?

1.使用javascript实现深度优先搜索解决全排列时,没有实现递归调用
2.`

  const log = console.log.bind(console)
  let box = []
  let book = []
  const n = 3
  let count = 0
  // dfs deep-first-serach
  let dfs = function (step) {
    log(++count)
    // 如果已经站在了第n+1个箱子面前,说明前n个箱子已经放好了扑克牌
    if (step === n + 1) {
      log(box)
      return
    }
    // step表示现在站在第几个盒子面前
    for(i = 1; i <= n; i++){
      if (book[i] === undefined) {
        // 手上有这张牌
        box[step] = i
        book[i] = 1
        // 递归调用
        dfs(step + 1)
        // 这是非常重要的一步,一定要将刚才的尝试的扑克牌收回,才能进行下一次尝试
        book[i] = 0
      }
    }
    return
  }

  // 万能的搜索
  dfs(1)

`
3.浏览器返回值图片描述

阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题