侧边栏壁纸
  • 累计撰写 29 篇文章
  • 累计收到 1 条评论

递归与动态规划

admin
2022-07-13 / 0 评论 / 22 阅读 / 正在检测是否收录...

暴力递归
1 汉诺塔问题---将数量为n的圆盘从最左边移动到最右边,必须小压大

function fn(n){
  if(n > 0){
    func(n,left,right,mid)
  }
  function func(n,from,to,other){
    if(n === 0){
      console.log(1,from,to)
    }
    func(n - 1,from,other,to)
      console.log(n,from,other)
    func(n - 1,other,to,from)
  }
}

2 打印字符串的所有子序列(字串不一定连续,但是相对顺序不能乱)

function fn(str){
  let arr = str.split('')
  let ans = []
  let path = ''
  func(arr,0,ans,path)
  return ans
  function func(arr,index,ans,path){
    if(index === arr.length){
      ans.push(path)
      return
    }
    let no = path
    func(arr,index + 1,ans,path)
    let yes = path + arr[index]
    func(arr,index + 1,ans,path)
  }
}
0

评论 (0)

取消