JS 实现动态规划

news2025/1/14 18:38:18

在这里插入图片描述

function getPaths(m, n) {
    // m * n 二维数组,模拟网格
    const map = new Array(m)
    for (let i = 0; i < m; i++) {
        map[i] = new Array(n)
    }

    // 如果只走第一行,就只有一条路径。所以第一行所有 item 都填充 1
    map[0].fill(1)

    // 如果只走第一列,也只有一条路径。所以第一列所有 item 都填充 1
    for (let i = 0; i < m; i++) {
        map[i][0] = 1
    }

    // 其他 item ,根据这个公式 map[i][j] = map[i - 1][j] + map[i][j - 1]
    // 如走到 [5, 4] 的路径数,就是 [4, 4] 和 [5, 3] 路径数的总和 —— 动态规划的思想
    // 注意:i 和 j 都从 1 开始 !!! 因为 0 位置已经被上文赋值为了
    for (let i = 1; i < m; i++) {
        for (let j = 1; j < n; j++) {
            map[i][j] = map[i - 1][j] + map[i][j - 1]
        }
    }

    // 返回 finish 节点的路径数
    return map[m - 1][n - 1]
}

console.log('paths', getPaths(5, 4))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1810747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vulnhub靶场:PWNOS: 2.0 (PRE-RELEASE)多种渗透方法

本文介绍靶机PWNOS: 2.0 的渗透方法&#xff0c;由于靶机系统比较老&#xff0c;尝试了几种不同的角度获得shell和提权。 1 环境搭建 根据提示信息&#xff0c;需要将网段设置为10.10.10.0/24&#xff0c;靶机ip为10.10.10.100。可以配置仅主机模式或NAT模式网卡&#xff0c;…

王学岗鸿蒙开发(北向)——————(十三)音乐播放器

AudioRenderer适合录音 AVPlayer:简单的本地单曲播放 MP3文件放置的地方 import media from ohos.multimedia.media import common from ohos.app.ability.common; Entry Component struct Index {//第1步&#xff1a;avPlayer:media.AVPlayer nullasync onPageShow(){//第…

Parallels Desktop 虚拟机必备软件有哪些 虚拟机软件有什么作用和用途

随着苹果M系列芯片电脑的推出&#xff0c;虚拟机的使用变得越来越流行。不同于苹果以往的Intel处理器电脑&#xff0c;其M系列芯片电脑无法安装双系统。如果要使用非macOS系统&#xff0c;可以通过创建虚拟机系统的方式实现。那么&#xff0c;虚拟机软件有什么作用和用途&#…

AXI Quad SPI IP核配置详解

AXI Quad SPI IP核&#xff08;Quad Serial Peripheral Interface&#xff09;是一个提供串行接口连接SPI从设备的解决方案&#xff0c;它支持Standard&#xff08;单线路&#xff09;、Dual&#xff08;双线路&#xff09;、Quad&#xff08;四线路&#xff09;模式&#xff0…

ARM32开发--外部中断EXTI

知不足而奋进 望远山而前行 目录 文章目录 前言 目标 内容 外部中断概念 中断触发机制 中断触发源 硬件外部中断 需求 开发流程 关心的内容 完整代码 软件外部中断 需求 开发流程 关心的内容 完整代码 中断消抖处理 系统计数模块 自定义计数器 systick完成…

LCD屏的价格和显示区的尺寸有关

LCD屏的价格和显示区的尺寸有关&#xff0c;和外尺寸无关。 下面通过12864点阵屏&#xff0c;对不同尺寸的屏&#xff0c;进行价格比较&#xff0c;就可以发现&#xff1a;LCD屏的价格和显示区的尺寸有关&#xff1b; 同点阵的屏&#xff0c;显示区域太小&#xff0c;显示12*1…

AMD在行动:揭示应用程序跟踪和性能分析的力量

AMD in Action: Unveiling the Power of Application Tracing and Profiling — ROCm Blogs 导言 Rocprof是一款强大的工具&#xff0c;设计用于分析和优化基于AMD ROCm平台上运行的HIP程序的性能&#xff0c;帮助开发者找出并解决性能瓶颈。Rocprof提供了多种性能数据&#x…

8.11 矢量图层线要素单一符号使用六(光栅线)

文章目录 前言光栅线&#xff08;Raster Line&#xff09;QGis设置线符号为光栅线&#xff08;Raster Line&#xff09;二次开发代码实现光栅线&#xff08;Raster Line&#xff09; 总结 前言 本章介绍矢量图层线要素单一符号中光栅线&#xff08;Raster Line&#xff09;的使…

【三维重建】增量SFM系统

在学习完鲁鹏老师的三维重建基础后&#xff0c;打算用C代码复现一下增量SFM系统&#xff08;https://github.com/ldx-star/SFM&#xff09;。 本项目的最终目标就是通过相机拍摄的多视角视图获取三维点云。由于资金有效&#xff0c;博主使用的是相机是小米12。 先来看一下最终…

Linux 安装ab测试工具

yum -y install httpd-tools ab -help #10个并发连接&#xff0c;100个请求 ab -n 200 -c 100 http://www.baidu.com/

算法之分治

分而治之 分治法所能解决的问题一般具有以下几个特征&#xff1a; 1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的子问题&#xff0c;即该问题具有最优子结构性质 3) 利用该问题分解出的子问题的解可以合并为该问题的解 4) 该问题所分…

动态内存管理学不懂,小代老师带你深入理解动态内存管理(下卷)

动态内存管理学不懂&#xff0c;小代老师带你深入理解动态内存管理&#xff08;下卷 柔性数组6.1 柔性数组的特点&#xff1a;6.2 柔性数组的使用 7. 总结C/C中程序内存区域划分 柔性数组 也许你从来没有听说过柔性数组&#xff08;flexible array&#xff09;这个概念&#x…

探索C++ STL的设计方式:将算法与数据结构分离

STL的设计 一、简介二、STL容器三、C数组四、用户定义的集合4.1、使用标准集合的typedef4.2、重用标准迭代器4.3、实现自己的迭代器 五、总结 一、简介 本文介绍STL的设计方式&#xff0c;以及如何设计自己的组件&#xff0c;使其能够充分利用STL的功能。 STL的设计旨在将算法…

Golang | Leetcode Golang题解之第135题分发糖果

题目&#xff1a; 题解&#xff1a; func candy(ratings []int) int {n : len(ratings)ans, inc, dec, pre : 1, 1, 0, 1for i : 1; i < n; i {if ratings[i] > ratings[i-1] {dec 0if ratings[i] ratings[i-1] {pre 1} else {pre}ans preinc pre} else {decif dec…

【权威发布】2024年新能源与人工智能国际会议(ICNEAI 2024)

2024年新能源与人工智能国际会议 2024 International Conference on New Energy and Artificial Intelligence 会议简介 2024年新能源与人工智能国际会议是一场聚焦新能源与人工智能交叉领域前沿科技探讨的盛会。此次会议汇集了全球能源、环保和人工智能领域的专家学者、科技人…

WT32-ETH01作为TCP Server进行通讯

目录 模块简介WT32-ETH01作为TCP Server设置W5500作为TCP Client设置连接并进行通讯总结 模块简介 WT32-ETH01网关主要功能特点: 采用双核Xtensa⑧32-bit LX6 MCU.集成SPI flash 32Mbit\ SRAM 520KB 支持TCP Server. TCP Client, UDP Server. UDP Client工作模式 支持串口、wi…

服务部署:解决Docker容器与虚拟机主机之间MySql连接访问问题

一、场景&#xff1a; 虚拟机上Ubuntu系统安装了Mysql&#xff0c;现在有一个服务应用需要使用docker来部署&#xff0c;服务应用需要连接mysql做数据库基础使用&#xff0c;配置文件中配置了虚拟主机的IP和端口&#xff0c;但是还是无法连接到Mysql&#xff0c;报错无法连接超…

零基础直接上手java跨平台桌面程序,使用javafx(四)用Apache POI读取excel文件。

Apache POI这个库&#xff0c;可能是JAVA平台最好操作excel文件的库了。怎么才能使用呢&#xff1f; 1、下载Apache POI&#xff0c;本来是个很简单的事情&#xff0c;但是也有坑。这也就是我一直不敢用java的原因之一&#xff0c;这些莫名其妙的坑&#xff0c;总是让人烦躁。…

MAC安装idea教程

https://blog.csdn.net/qq_41810415/article/details/131649541 JDK安装 https://blog.csdn.net/dddebug/article/details/121713633 2、编辑.bash_profile文件 vim .bash_profile 进入编辑模式后 按 i 开始添加内容 结束编辑模式按 ESC 结束后保存输入 :wq! 不保存输入 :q! 检…

Apple - IOKit Fundamentals

本文翻译整理自&#xff1a;IOKit Fundamentals &#xff08;Updated: 2014-04-09 https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/Introduction/Introduction.html 文章目录 一、I/O Kit 基础知识简介1、谁应该阅读本…