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

JavaScript網(wǎng)格中的最小路徑講解

 更新時(shí)間:2022年06月21日 10:06:12   作者:??JYeontu????  
這篇文章主要介紹了JavaScript網(wǎng)格中的最小路徑講解,所有路徑經(jīng)過的單元格的?值之和?加上?所有移動(dòng)的?代價(jià)之和?。從?第一行?任意單元格出發(fā),返回到達(dá)?最后一行?任意單元格的最小路徑代價(jià)

問題描述

給你一個(gè)下標(biāo)從 0 開始的整數(shù)矩陣 grid ,矩陣大小為 m x n ,由從 0 到 m * n - 1 的不同整數(shù)組成。你可以在此矩陣中,從一個(gè)單元格移動(dòng)到 下一行 的任何其他單元格。如果你位于單元格 (x, y) ,且滿足 x < m - 1 ,你可以移動(dòng)到 (x + 1, 0), (x + 1, 1), ..., (x + 1, n - 1) 中的任何一個(gè)單元格。注意: 在最后一行中的單元格不能觸發(fā)移動(dòng)。

每次可能的移動(dòng)都需要付出對應(yīng)的代價(jià),代價(jià)用一個(gè)下標(biāo)從 0 開始的二維數(shù)組 moveCost 表示,該數(shù)組大小為 (m * n) x n ,其中 moveCost[i][j] 是從值為 i 的單元格移動(dòng)到下一行第 j 列單元格的代價(jià)。從 grid 最后一行的單元格移動(dòng)的代價(jià)可以忽略。

grid 一條路徑的代價(jià)是:所有路徑經(jīng)過的單元格的 值之和 加上 所有移動(dòng)的 代價(jià)之和 。從 第一行 任意單元格出發(fā),返回到達(dá) 最后一行 任意單元格的最小路徑代價(jià)。

示例 1:

輸入:grid = [[5,3],[4,0],[2,1]], moveCost = [[9,8],[1,5],[10,12],[18,6],[2,4],[14,3]]
輸出:17
解釋:最小代價(jià)的路徑是 5 -> 0 -> 1 。
- 路徑途經(jīng)單元格值之和 5 + 0 + 1 = 6 。
- 從 5 移動(dòng)到 0 的代價(jià)為 3 。
- 從 0 移動(dòng)到 1 的代價(jià)為 8 。
路徑總代價(jià)為 6 + 3 + 8 = 17 。

示例 2:

輸入:grid = [[5,1,2],[4,0,3]], moveCost = [[12,10,15],[20,23,8],[21,7,1],[8,1,13],[9,10,25],[5,3,2]]
輸出:6
解釋:
最小代價(jià)的路徑是 2 -> 3 。 
- 路徑途經(jīng)單元格值之和 2 + 3 = 5 。 
- 從 2 移動(dòng)到 3 的代價(jià)為 1 。 
路徑總代價(jià)為 5 + 1 = 6 。

提示:

m == grid.length
n == grid[i].length
2 <= m, n <= 50
grid 由從 0 到 m * n - 1 的不同整數(shù)組成
moveCost.length == m * n
moveCost[i].length == n
1 <= moveCost[i][j] <= 100

思路分析

這道題目其實(shí)并不難,難的是對于題目的理解,題目有點(diǎn)長和繞,我們需要仔細(xì)閱讀清楚題目給的信息,結(jié)合示例一的圖片進(jìn)行理解會更清晰。

1、題目會給出一個(gè) m * n 的矩陣;

一個(gè)下標(biāo)從 0 開始的整數(shù)矩陣 grid ,矩陣大小為 m x n ,由從 0 到 m * n - 1 的不同整數(shù)組成。

2、每一行的格子可以移動(dòng)到下一行的任意一格;

在此矩陣中,從一個(gè)單元格移動(dòng)到 下一行 的任何其他單元格。如果你位于單元格 (x, y) ,且滿足 x < m - 1 ,你可以移動(dòng)到 (x + 1, 0), (x + 1, 1), ..., (x + 1, n - 1) 中的任何一個(gè)單元格。

3、moveCost[i][j]表示從值為 i 的單元格移動(dòng)到下一行第 j 列單元格的代價(jià)

每次可能的移動(dòng)都需要付出對應(yīng)的代價(jià),代價(jià)用一個(gè)下標(biāo)從 0 開始的二維數(shù)組 moveCost 表示,該數(shù)組大小為 (m * n) x n ,其中 moveCost[i][j] 是從值為 i 的單元格移動(dòng)到下一行第 j 列單元格的代價(jià)。

4、求從 第一行 任意單元格出發(fā),返回到達(dá) 最后一行 任意單元格的最小路徑代價(jià)。

grid 一條路徑的代價(jià)是:所有路徑經(jīng)過的單元格的 值之和 加上 所有移動(dòng)的 代價(jià)之和 。從 第一行 任意單元格出發(fā),返回到達(dá) 最后一行 任意單元格的最小路徑代價(jià)。

理清楚上面的這四個(gè)信息之后,我們可以發(fā)現(xiàn)這是一道經(jīng)典的dp動(dòng)態(tài)規(guī)劃的題目,我們每一個(gè)格子的上一步只能是上一行的某一格,我們只需要自頂向下求出移動(dòng)到每一個(gè)格子的最下代價(jià)即可。

遍歷矩陣的每一個(gè)格子,維護(hù)上一行到當(dāng)前格子的最小代價(jià),最后求出最后一行的格子的最小代價(jià)即可。

AC代碼

/**
 * @param {number[][]} grid
 * @param {number[][]} moveCost
 * @return {number}
 */
 var minPathCost = function(grid, moveCost) {
    let dp = new Array(grid.length);
    let res = Infinity;
    for(let i = 0; i < dp.length; i++){
        dp[i] = new Array(grid[i].length).fill(0);
        for(let j = 0; j <  dp[i].length; j++){
            if(i === 0) dp[i][j] = grid[i][j];
            else{
                let temp = Infinity;
                for(let k = 0; k < dp[i].length; k++){
                    temp = Math.min(temp,dp[i - 1][k] + moveCost[grid[i - 1][k]][j]);
                }
                dp[i][j] = temp + grid[i][j];
            }
            if(i == grid.length - 1){
                res = Math.min(dp[i][j],res);
            }
        }
    }
    return res;
};

到此這篇關(guān)于JavaScript網(wǎng)格中的最小路徑講解的文章就介紹到這了,更多相關(guān)JS網(wǎng)格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)美食展示與收藏功能

    微信小程序?qū)崿F(xiàn)美食展示與收藏功能

    這篇文章主要介紹了如何在微信小程序中實(shí)現(xiàn)美食展示與收藏的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下
    2022-03-03
  • JS與JQuery分別實(shí)現(xiàn)淘寶五星好評特效

    JS與JQuery分別實(shí)現(xiàn)淘寶五星好評特效

    這篇文章主要為大家詳細(xì)介紹了JS與JQuery分別實(shí)現(xiàn)淘寶五星好評特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • javascript下拉框選項(xiàng)單擊事件的例子分享

    javascript下拉框選項(xiàng)單擊事件的例子分享

    這篇文章主要分享了一些javascript下拉框選項(xiàng)單擊事件的例子,以及在例子中遇到的問題的解決方法,十分實(shí)用,推薦給小伙伴們參考下。
    2015-03-03
  • 淺談JS原型對象和原型鏈

    淺談JS原型對象和原型鏈

    這篇文章主要為大家詳細(xì)介紹了JS原型對象和原型鏈,感興趣的小伙伴們可以參考一下
    2016-03-03
  • JavaScript異步Promise、Async、await使用舉例詳解

    JavaScript異步Promise、Async、await使用舉例詳解

    Promise 和 async/await 無疑是前端異步編程領(lǐng)域的兩大得力工具,下面這篇文章主要介紹了JavaScript異步Promise、Async、await使用舉例詳解的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • JavaScript中的變量作用域介紹

    JavaScript中的變量作用域介紹

    這篇文章主要介紹了JavaScript中的變量作用域介紹,本文同時(shí)講解了一個(gè)新概念變量的作用域鏈,需要的朋友可以參考下
    2014-12-12
  • 前端傳遞參數(shù)時(shí)form-data和json的區(qū)別詳解

    前端傳遞參數(shù)時(shí)form-data和json的區(qū)別詳解

    前端可以通FormData對象實(shí)現(xiàn)表單形式提交數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于前端傳遞參數(shù)時(shí)form-data和json區(qū)別的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • js仿3366小游戲選字游戲

    js仿3366小游戲選字游戲

    這篇文章主要為大家詳細(xì)介紹了js仿3366小游戲選字游戲
    2016-04-04
  • 簡單分析js中的this的原理

    簡單分析js中的this的原理

    這篇文章主要介紹了簡單分析js中的this的原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • JS實(shí)現(xiàn)的仿東京商城菜單、仿Win右鍵菜單及仿淘寶TAB特效合集

    JS實(shí)現(xiàn)的仿東京商城菜單、仿Win右鍵菜單及仿淘寶TAB特效合集

    這篇文章主要介紹了JS實(shí)現(xiàn)的仿東京商城菜單、仿Win右鍵菜單及仿淘寶TAB特效合集,以實(shí)例形式較為詳細(xì)的分析了JavaScript實(shí)現(xiàn)動(dòng)態(tài)添加下拉菜單及響應(yīng)鼠標(biāo)事件生成菜單等實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-09-09

最新評論

琼结县| 台安县| 娄底市| 得荣县| 新巴尔虎右旗| 新竹市| 西林县| 株洲县| 香港 | 罗甸县| 共和县| 黄浦区| 秭归县| 天峨县| 松潘县| 贺州市| 靖远县| 犍为县| 四子王旗| 台东市| 张家口市| 长武县| 壶关县| 绥棱县| 平潭县| 长子县| 万全县| 当涂县| 唐海县| 新乡县| 邻水| 金沙县| 正安县| 乌什县| 怀远县| 宜良县| 嵩明县| 安国市| 永和县| 乌拉特中旗| 景洪市|