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.浏览器返回值
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论