最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)深度優(yōu)先搜索求解兩點(diǎn)間最短路徑

 更新時間:2019年01月17日 11:19:35   作者:我要瀟瀟灑灑  
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)深度優(yōu)先搜索求解兩點(diǎn)間最短路徑,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JS實(shí)現(xiàn)深度優(yōu)先搜索求解兩點(diǎn)間最短路徑的具體代碼,供大家參考,具體內(nèi)容如下

效果:

找出圖里點(diǎn)到點(diǎn)最短路徑,并打印軌跡

圖片如下所示:


代碼:

const map = [
  [0, 1, 1, 0, 1],
  [1, 0, 0, 1, 0],
  [1, 0, 0, 0, 1],
  [0, 1, 0, 0, 0],
  [1, 0, 1, 0, 0]
]

function dfsManager(map, start, end){

  var min = 9999,
    path = [],
    unvisited = [];
  for(let i=0; i<5;i++){
    unvisited[i] = true
  }

  (function dfs(map, start, end, step){
    //unvisited[start] = false //不重復(fù)訪問最后的節(jié)點(diǎn)
    if(start === end){
      console.log('step:',step)
      for(let i=0; i<path.length; i++){
        if(path[i] >= 0){
          console.log(path[i]+'->')
        }
      }
      if(min > step){
        min = step
      }
      return
    }
    unvisited[start] = false  //要重復(fù)訪問最后的節(jié)點(diǎn)
    let len = map.length

    for(let i=0; i<len; i++){
      if(map[start][i] === 1 && unvisited[i]){
        path.push(i)  //記錄路徑
        dfs(map, i, end, step+1)
        path.pop()   //避免污染其他路徑
      }
    }
  })(map, start, end, 0)

  return min
}

console.log('min:',dfsManager(map,3,4))

output:

step: 4
1->
0->
2->
4->
step: 3
1->
0->
4->
min: 3

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • event.currentTarget與event.target的區(qū)別介紹

    event.currentTarget與event.target的區(qū)別介紹

    event.currentTarget與event.target的區(qū)別想大家在使用的時候不是很在意,本文以測試代碼來講解它門之間的不同
    2012-12-12
  • javascript中的隱式調(diào)用

    javascript中的隱式調(diào)用

    本篇文章給大家詳細(xì)介紹了javascript中的隱式調(diào)用相關(guān)知識點(diǎn),對此有興趣的可以跟著小編一起學(xué)習(xí)下。
    2018-02-02
  • 使用CoffeeScrip優(yōu)美方式編寫javascript代碼

    使用CoffeeScrip優(yōu)美方式編寫javascript代碼

    CoffeeScript就是JavaScript,他進(jìn)行的是一對一的編譯,或者說是翻譯,而且編譯成的JavaScript代碼可讀性很強(qiáng)。本文給大家介紹使用CoffeeScript優(yōu)美方式編寫javascript代碼,感興趣的朋友一起看看吧
    2015-10-10
  • JavaScript實(shí)現(xiàn)數(shù)組去重的14種方法大全

    JavaScript實(shí)現(xiàn)數(shù)組去重的14種方法大全

    親愛的小伙伴,對于數(shù)組javascript中的數(shù)組去重方法你知道多少種呢?學(xué)會如何對數(shù)組進(jìn)行去重對于javascript的學(xué)習(xí)來說也是十分重要的,下邊就讓我來分享一下我所知道的集中數(shù)組去重的方法吧,感興趣的小伙伴跟著小編一起來看看吧
    2025-03-03
  • 使用TypeScript?V8來改進(jìn)您的JavaScript代碼

    使用TypeScript?V8來改進(jìn)您的JavaScript代碼

    TypeScript?V8是一個強(qiáng)大的JavaScript類型系統(tǒng),它可以幫助你發(fā)現(xiàn)JavaScript代碼中的錯誤和潛在問題,并在編譯時捕獲它們,以便您可以解決它們,TypeScript?V8為JavaScript提供一系列的類型注釋,包括自定義類型和其他高級功能
    2023-08-08
  • JS實(shí)現(xiàn)電商商品展示放大鏡特效

    JS實(shí)現(xiàn)電商商品展示放大鏡特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)電商商品展示放大鏡特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • 原生JS分頁展示效果(點(diǎn)擊分頁看效果)

    原生JS分頁展示效果(點(diǎn)擊分頁看效果)

    特別酷的分頁展示效果,原生JS實(shí)現(xiàn),點(diǎn)擊分頁看效果
    2012-11-11
  • 微信小程序?qū)崿F(xiàn)Timeline時間線效果

    微信小程序?qū)崿F(xiàn)Timeline時間線效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)Timeline時間線效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Js的MessageBox效果代碼

    Js的MessageBox效果代碼

    看到論壇上有人模仿alert,自己也寫了一個。 本來想模仿winapi里的MessageBox 但可惜js 不支持,阻塞模式。
    2008-05-05
  • javascript實(shí)現(xiàn)時鐘動畫

    javascript實(shí)現(xiàn)時鐘動畫

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)時鐘動畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論

海林市| 湟中县| 库尔勒市| 四平市| 洞口县| 二连浩特市| 深泽县| 平果县| 沽源县| 肇源县| 安溪县| 普格县| 泰安市| 夹江县| 习水县| 城固县| 金堂县| 遂昌县| 南充市| 普兰店市| 福安市| 谷城县| 莒南县| 新宁县| 武清区| 达日县| 中西区| 连平县| 新密市| 灌南县| 徐汇区| 神木县| 屯昌县| 凤山县| 任丘市| 新密市| 黄平县| 蓬安县| 奇台县| 阿尔山市| 开封市|