iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JavaScript网格中的最小路径怎么实现
  • 815
分享到

JavaScript网格中的最小路径怎么实现

2023-07-02 11:07:11 815人浏览 独家记忆
摘要

这篇“javascript网格中的最小路径怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript网格中的

这篇“javascript网格中的最小路径怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript网格中的最小路径怎么实现”文章吧。

问题描述

给你一个下标从 0 开始的整数矩阵 grid ,矩阵大小为 m x n ,由从 0 到 m * n - 1 的不同整数组成。你可以在此矩阵中,从一个单元格移动到 下一行 的任何其他单元格。如果你位于单元格 (x, y) ,且满足 x < m - 1 ,你可以移动到 (x + 1, 0), (x + 1, 1), ..., (x + 1, n - 1) 中的任何一个单元格。注意: 在最后一行中的单元格不能触发移动。

每次可能的移动都需要付出对应的代价,代价用一个下标从 0 开始的二维数组 moveCost 表示,该数组大小为 (m * n) x n ,其中 moveCost[i][j] 是从值为 i 的单元格移动到下一行第 j 列单元格的代价。从 grid 最后一行的单元格移动的代价可以忽略。

grid 一条路径的代价是:所有路径经过的单元格的 值之和 加上 所有移动的 代价之和 。从 第一行 任意单元格出发,返回到达 最后一行 任意单元格的最小路径代价。

示例 1:

JavaScript网格中的最小路径怎么实现

输入:grid = [[5,3],[4,0],[2,1]], moveCost = [[9,8],[1,5],[10,12],[18,6],[2,4],[14,3]]输出:17解释:最小代价的路径是 5 -> 0 -> 1 。- 路径途经单元格值之和 5 + 0 + 1 = 6 。- 从 5 移动到 0 的代价为 3 。- 从 0 移动到 1 的代价为 8 。路径总代价为 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解释:最小代价的路径是 2 -> 3 。 - 路径途经单元格值之和 2 + 3 = 5 。 - 从 2 移动到 3 的代价为 1 。 路径总代价为 5 + 1 = 6 。

提示:

m == grid.lengthn == grid[i].length2 <= m, n <= 50grid 由从 0 到 m * n - 1 的不同整数组成moveCost.length == m * nmoveCost[i].length == n1 <= moveCost[i][j] <= 100

思路分析

这道题目其实并不难,难的是对于题目的理解,题目有点长和绕,我们需要仔细阅读清楚题目给的信息,结合示例一的图片进行理解会更清晰。

1、题目会给出一个 m * n 的矩阵;

一个下标从 0 开始的整数矩阵 grid ,矩阵大小为 m x n ,由从 0 到 m * n - 1 的不同整数组成。

2、每一行的格子可以移动到下一行的任意一格;

在此矩阵中,从一个单元格移动到 下一行 的任何其他单元格。如果你位于单元格 (x, y) ,且满足 x < m - 1 ,你可以移动到 (x + 1, 0), (x + 1, 1), ..., (x + 1, n - 1) 中的任何一个单元格。

3、moveCost[i][j]表示从值为 i 的单元格移动到下一行第 j 列单元格的代价

每次可能的移动都需要付出对应的代价,代价用一个下标从 0 开始的二维数组 moveCost 表示,该数组大小为 (m * n) x n ,其中 moveCost[i][j] 是从值为 i 的单元格移动到下一行第 j 列单元格的代价。

4、求从 第一行 任意单元格出发,返回到达 最后一行 任意单元格的最小路径代价。

grid 一条路径的代价是:所有路径经过的单元格的 值之和 加上 所有移动的 代价之和 。从 第一行 任意单元格出发,返回到达 最后一行 任意单元格的最小路径代价。

理清楚上面的这四个信息之后,我们可以发现这是一道经典的dp动态规划的题目,我们每一个格子的上一步只能是上一行的某一格,我们只需要自顶向下求出移动到每一个格子的最下代价即可。

遍历矩阵的每一个格子,维护上一行到当前格子的最小代价,最后求出最后一行的格子的最小代价即可。

AC代码

 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;};

以上就是关于“JavaScript网格中的最小路径怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: JavaScript网格中的最小路径怎么实现

本文链接: https://www.lsjlt.com/news/341547.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript网格中的最小路径怎么实现
    这篇“JavaScript网格中的最小路径怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript网格中的...
    99+
    2023-07-02
  • JavaScript网格中的最小路径讲解
    目录问题描述思路分析AC代码问题描述 给你一个下标从 0 开始的整数矩阵 grid ,矩阵大小为 m x n ,由从 0 到 m * n - 1 的不同整数组成。你可以在此...
    99+
    2022-11-13
  • JavaScript路径打包:Java中的最佳实践是什么?
    随着前端技术的发展,JavaScript已经成为了网页开发中的重要组成部分。而在JavaScript开发中,路径打包是一个非常重要的问题。Java中的最佳实践是什么?本文将为您详细介绍JavaScript路径打包的相关知识,并提供Java中...
    99+
    2023-09-10
    打包 javascript path
  • C#图表算法之最短路径怎么实现
    本篇内容主要讲解“C#图表算法之最短路径怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#图表算法之最短路径怎么实现”吧!从一个顶点到达另一个顶点的成本最小的路径。我们采用一个一般性的模...
    99+
    2023-06-30
  • PHP 中使用 JavaScript API 处理路径的最佳实践是什么?
    在开发 Web 应用程序时,PHP 和 JavaScript 是最常用的编程语言。PHP 通常用于处理服务器端的逻辑,而 JavaScript 用于处理客户端的交互和动态效果。在这两种编程语言中,处理路径是一个常见的需求。本文将介绍在 P...
    99+
    2023-11-10
    api javascript path
  • thinkphp中路径替换怎么实现
    这篇“thinkphp中路径替换怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“thinkphp中路径替换怎么实现”文...
    99+
    2023-07-05
  • Silverlight3中怎么实现按路径运动
    本篇文章给大家分享的是有关Silverlight3中怎么实现按路径运动,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Code  <Window&nbs...
    99+
    2023-06-17
  • NumPy路径问题:PHP中的最佳实践是什么?
    NumPy是Python科学计算中最为重要的第三方模块之一,它提供了高效的数组操作和数学函数库。在PHP中,使用NumPy可能会遇到路径问题,因此需要一些最佳实践来解决这个问题。 首先,我们需要安装NumPy模块。可以通过pip安装: pi...
    99+
    2023-09-11
    numpy path numy
  • Apache中的PHP路径存储:最佳实践是什么?
    在使用Apache作为Web服务器的时候,我们经常需要将PHP脚本与Apache服务器进行集成。在此过程中,Apache服务器需要知道PHP脚本的存储路径才能正确地执行它们。这就引发了一个问题:在Apache中,如何存储PHP路径才能实现...
    99+
    2023-09-06
    存储 apache path
  • Go中的路径实时监测,接口怎么实现?
    在Go语言中,有时候我们需要实时监测某个目录下的文件变化,以便于及时地做出相应的处理。例如,我们需要监测某个文件夹下的文件,当有新的文件添加进去或者文件被删除时,我们需要能够及时地收到通知。那么,在Go语言中,我们该如何实现这样的功能呢?...
    99+
    2023-09-01
    接口 实时 path
  • Python和Matlab怎么实现蚂蚁群算法求解最短路径
    这篇文章主要介绍“Python和Matlab怎么实现蚂蚁群算法求解最短路径”,在日常操作中,相信很多人在Python和Matlab怎么实现蚂蚁群算法求解最短路径问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”P...
    99+
    2023-06-29
  • 实时更新Java中的HTTP路径:最佳实践是什么?
    Java中的HTTP路径是一个重要的主题,许多开发人员需要实时更新这些路径以确保应用程序的正常运行。但是,对于许多新手开发人员来说,这可能是一个棘手的问题。在本文中,我们将讨论实时更新Java中的HTTP路径的最佳实践。 HTTP路径是一个...
    99+
    2023-06-27
    path http 实时
  • NodeJS中怎么利用express实现路径映射
    NodeJS中怎么利用express实现路径映射,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。路由(URL映射)Express...
    99+
    2022-10-19
  • 怎么在Java中实现一个二叉树路径
    这篇文章给大家介绍怎么在Java中实现一个二叉树路径,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。给定一个二叉树,和 目标值 = 5:  1 / \ 2 4&...
    99+
    2023-05-30
    java
  • 怎么实现Bootstrap中的网格布局
    本篇内容主要讲解“怎么实现Bootstrap中的网格布局”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么实现Bootstrap中的网格布局”吧!1、Boots...
    99+
    2022-10-19
  • Go中实现实时路径的接口,你知道怎么做吗?
    Go是一种快速,简单和可靠的编程语言,它被广泛应用于Web开发、游戏开发、系统编程等领域。在这篇文章中,我们将探讨如何在Go中实现实时路径的接口。 实时路径是指在任何时候都能够获取到最新的路径信息,这在很多应用场景中都是非常重要的,比如导航...
    99+
    2023-09-01
    接口 实时 path
  • Laravel 中的 PHP 路径设置在 Linux 上的最佳实践是什么?
    Laravel 是一个基于 PHP 的 Web 应用程序框架,它提供了一种优雅的方法来构建 Web 应用程序,并且可以快速开发高质量的 Web 应用程序。 在这个框架中,PHP 路径设置是至关重要的一部分,因为它们决定了应用程序如何加载和处...
    99+
    2023-06-13
    path laravel linux
  • node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
    node.js版 遍历文件夹下最大的文件,并输出路径,大小 实现代码: function findmax(basepath){ //只能执行一次 if(findmax.s) r...
    99+
    2022-06-04
    遍历 文件夹 路径
  • angular中怎么解决ngRoute路径出现#!#的问题
    这篇文章主要介绍了angular中怎么解决ngRoute路径出现#!#的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在做一个开源项目的时候,使用了"angul...
    99+
    2023-06-15
  • 怎么在css中实现inline-block的最小宽度值
    本篇文章给大家分享的是有关怎么在css中实现inline-block的最小宽度值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。<style>  ...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作