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

发布于 2022-09-05 23:51:11 字数 799 浏览 36 评论 0

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.浏览器返回值图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文