【leetcode】62. 不同路径 & 63. 不同路径 II (dp入门)

Java服务端实现Google Pay支付功能 全网最全代码、最清晰服务端处理Google Pay,最清晰讲解Google Pay集成逻辑。 阅读详情

题目: 62. 不同路径

在这里插入图片描述在这里插入图片描述 题目链接:62. 不同路径

思路分析:

  • 建立dp数组,定义dp[i][j]为:从起点到位置(i,j)时的路径总数。由加法原理和“每次只能向下或者向右移动一步”可以知道:“走到(i,j)”由“走到(i-1,j)”或者“走到(i,j-1)”得到,故“走到(i,j)”的方法总数就是“走到(i-1,j)”和“走到(i,j-1)”的总和。即状态转移方程为dp[i][j]=dp[i-1][j]+dp[i][j-1]。
  • 第一行和第一列都只对应了一种走法,故可以将其初始化为1。

AC代码:

class Solution {
public:
    int uniquePaths(int m, int n) {
        if(m==0||n==0) return 0;  / /行或列为0,则没有路径
    vector<vector<int>>dp(m+1,vector<int>(n+1,0)); / /构造dp数组并初始化为0
    for(int i=1;i<=m;i++) dp[i][1]=1;   / /初始化第一列为1
    for(int i=1;i<=n;i++) dp[1][i]=1;   / /初始化第一行为1
    for(int i=2;i<=m;i++)   / /两层循环递推出dp数组
    for(int j=2;j<=n;j++)
    dp[i][j]=dp[i-1][j]+dp[i][j-1];  
    return dp[m][n];  / /dp[m][n]即为到达右下角的方法总数
    }
};

题目: 63. 不同路径 II

在这里插入图片描述
在这里插入图片描述 题目链接:63. 不同路径 II

思路分析:

  • 在上一题的基础上添加了“障碍物”。假设(i,j)处出现“障碍物”,则dp[i][j]对dp[i+1][j]和dp[i][j+1]的值没有贡献,所以把dp[i][j]的值置为0,就实现了对“障碍物”的处理。
  • 假设此题仅在62题的基础上做“(i,j)处出现“障碍物“就把dp[i][j]的值置为0”这样的更改的话,那对于dp数组第一行和第一列的初始化就不太方便了:假设第一行的某个位置(或第一列)出现了”障碍物“,则第一行(或第一列)后面的值都要置为0。思路简单,但是代码实现就显得不太"优雅"。
  • 为了使代码"优雅"些,我们把网格中的(i,j)位置和dp数组的dp[i+1][j+1]对应。此时就只用初始化dp[0][1]为1即可。

AC代码:

class Solution {
public:
    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
    int m=obstacleGrid.size();
    if(m==0) return 0;  
    int n=obstacleGrid[0].size();
    if(n==0) return 0;    / /网格的行数或列数为0就不存在路径 
    vector<vector<int>>dp(m+1,vector<int>(n+1,0));  / /构造dp数组并初始化为0
    dp[0][1]=1;  / /初始化边界
    for(int i=1;i<=m;i++)
    for(int j=1;j<=n;j++)
    if(obstacleGrid[i-1][j-1]==1)  dp[i][j]=0; / /网格中出现“障碍物”时,将对应的dp值置为0
    else dp[i][j]=dp[i-1][j]+dp[i][j-1];   
    return dp[m][n];     / /dp[m][n]即为到达右下角的方法总数
    }
};

总结:

  • 加法原理回顾:
    在这里插入图片描述

  • 很多计数类的dp(求方案数、求路径数等)都有“加法原理”的思想,关键是构造状态转移方程时明确“前一类方法中是有那些方法”。

上一篇博客:【leetcode】面试题 04.12. 求和路径(dfs)

Mumax3高效模拟技巧:如何利用代码模板快速完成磁性材料特性分析 本文介绍了利用Mumax3代码模板库提升磁性材料微磁学模拟效率的核心方法。通过构建模块化的环境配置、材料库和特征长度计算模板,研究者可以快速组装模拟方案,自动化参数扫描与结果分析,从而将精力聚焦于物理问题本身,实现工作效率的指数级提升。 阅读详情

相关推荐

手把手用ROS实现Ego-Planner动态避障:无人机撞树问题终结方案

本文详细介绍了如何在ROS和Gazebo仿真环境中,通过配置和调优Ego-Planner算法,实现无人机的动态避障功能。文章深入解析了其基于局部梯度优化的核心思想,提供了从环境搭建、参数详解到代码集成的完整实践指南,并分享了实战排错经验,旨在彻底解决无人机在复杂动态场景中的碰撞问题。

weixin_29031161的博客 1630

leetcode-DP入门

1.climb stair问题 n层楼梯,一次可以爬一层或两层,问爬到n层又几种方法 Summary You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can y...

weixin_39502247的博客 457

DDR内存Prefetch机制详解:从DDR1到DDR4的技术演进与性能提升

本文深入解析DDR内存Prefetch机制从DDR1到DDR4的技术演进与性能提升。通过分析Prefetch技术的实现原理与Burst传输的协同机制,揭示DDR1的2n Prefetch、DDR2的4n Prefetch、DDR3的8n Prefetch以及DDR4的Bank Group架构创新如何显著提升内存带宽与系统性能。

weixin_30369041的博客 537

leetcode 120 入门级DP

下面的解法肯定不是效率最高的,但是我觉得是最容易理解的一种解法。 1、题目描述 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为11(即,2+3+5+1= 11)。 说明: 如果你可以只使用 O...

Chain的博客 270

国际项目投标那些事(三)海外项目招标文件的组成

以一个实际的项目作为例子,是我2020年初投的一个东南亚国家的水厂的竞争性投标。这个投标的招标基于FIDIC yellow book (Design and Build) 合同模板。 海外项目的招标一般是有专门的咨询公司(consulting engineer)写招标文件,有的咨询公司非常专业,对于技术、合同、业绩的要求非常细致。 我这个项目的招标文件共5册 400多页(全英文),附件26册将...

WTSolutions的博客 2004

如何使用Calibre PERC抽出 点到点/p2p 电阻

@[TOC](如何使用Calibre PERC抽点到点(p2p)电阻) 一、前言 需要实现的功能是从gds中抽出net的点到点的电阻。如下图这样。 二、准备工作 lvs rule pex rule(必要时可以自己定义RC rule) gds p2p点的坐标 定义prode.defs 因为p2p的点是变化的,所以每次prode定义都要重新出,对应的perc rule也是根据每个p2p点的定义来的,perc rule也是每次都要重新出。如果需要可以写一个脚本自动出这些定义文件。 PROBE_POINTS

kobayashiyou的博客 1万+

【LeetCode NO.62】不同路径Ⅱ

同样是针对矩阵类的动态规划,我们直接看题目给出思路分析: 题目描述: 一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用1和0来表示。 说明:m和n的值均不超过 100。 示例1: 输入: [ [0,0,0], [0,1,0],...

画家高的博客 269

内容创作全流程自动化:OpenClaw+大模型搞定选题+写稿+多平台发布

本文介绍了一套基于OpenClaw的全自动化内容创作流水线方案,帮助垂直领域创作者摆脱重复劳动。该方案将内容生产拆解为选题生成、内容撰写、格式适配、多平台发布四个模块,通过工作流引擎串联执行。系统能自动采集热榜生成选题、调用大模型撰写结构化内容、适配不同平台格式要求,并通过API+浏览器自动化实现多平台发布,全程只需人工最终审核。作者分享了各模块的实现细节,包括热榜采集、内容结构化生成、Markdown转换和发布策略,并提供了工作流编排方法。这套方案能为创作者每天节省约3小时,同时保证内容质量和发布效率。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 49

Leetcode 62. Unique Paths 不同路径

Leetcode 62. Unique Paths 不同路径 标签: Leetcode 题目地址:https://leetcode-cn.com/problems/unique-paths/ 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共...

CoderWangSon 346

【AI智能体】最强AI编程利器 Claude Code 从部署到项目实战详解

最强AI编程利器 Claude Code 从部署到项目实战详解

congge 4511

YOLO26原创自研: 魔改Bottleneck,具备多尺度和特征通道融合的结构

魔改Bottleneck,具备多尺度和特征通道融合的结构,该模型在检测准确性方面都取得了良好的效果,尤其在缺陷检测方向。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 317

【算法】【动态规划】动规dp解决不同路径两道经典OJ笔试题【力扣62-力扣63】超详细的动态规划入门详解,掌握动态规划的解题方法

【算法】【动态规划】【力扣62-力扣63】 宝藏级别动态规划教程,干货满满,不要错过!

系统编程、网络编程 2318

Linux系列:SecurtCRT中的密码如何找回

【代码】Linux系列:SecurtCRT中的密码如何找回。

NIO4444 1086

DAY38 ||62.不同路径 |63. 不同路径 II

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?解释: 从左上角开始,总共有 3 条路径可以到达右下角。

2301_79865280的博客 1648

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = &quot;R. B. Palm&quot;, title = &quot;Prediction as a candidate for learning deep hierarchical models of data&quot;, year = &quot;2012&quot;,}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er&lt;0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er &lt; 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free &quot;Bitdeli Badge&quot;)

力扣63 不同路径II

这条边有了障碍之后,障碍之后(包括障碍)都是⾛不到的位置了,所以障碍之后的。第⼀次接触这种题⽬的同学可能会有点懵,这有障碍了,应该怎么算呢?中我们已经详细分析了没有障碍的情况,有障碍的话,其实就是标记对应的。中可以看出,⼀定是从左到右⼀层⼀层遍历,这样保证推导。1. 向右 -> 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右 -> 向右。机器人每次只能向下或者向右移动一步。返回机器人能够到达右下角的不同路径数量。3x3 网格的正中间有一个障碍物。但这⾥需要注意⼀点,因为有了障碍,

2301_79385646的博客 708

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

算法训练第29天|62.不同路径|63. 不同路径 II

那么很自然,dp[i][j] = dp[i - 1][j] + dp[i][j - 1],因为dp[i][j]只有这两个方向过来。递推公式dp[i][j] = dp[i - 1][j] + dp[i][j - 1],dp[i][j]都是从其上方和左方推导而来,从递归公式dp[i][j] = dp[i - 1][j] + dp[i][j - 1] 中可以看出,一定是从左到右一层一层遍历。想要求dp[i][j],只能有两个方向来推导出来,即dp[i - 1][j] 和 dp[i][j - 1]。

qq_42813810的博客 1849

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

代码随想录刷题day34丨 62.不同路径 ,63. 不同路径 II

文档讲解:https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84.html解题思路:动态规划确定dp数组(dp table)以及下标的含义确定递推公式dp数组的初始化确定遍历顺序举例推导dp数组。

m0_75195038的博客 1285

代码随想录算法训练营第三十四天|leetcode62.不同路径、leetcode 63. 不同路径 II

思路:首先就不知道dp的含义应该如何定义了。

angela3264的博客 1454

算法打卡day34|动态规划篇02| Leetcode 62.不同路径、63. 不同路径 II

JAVA算法|动态规划篇02| Leetcode 62.不同路径、63. 不同路径 II

改变从现在开始 888

代码随想录算法训练营第39天| Leetcode 62.不同路径、Leetcode 63. 不同路径 II

这两道题还是比较简单的,递推公式很好想到。最后,如果文章有错误,请在评论区或私信指出,让我们共同进步!

Camellia__Wang的博客 1404

代码随想录算法训练营Day38 | 62. 不同路径、63. 不同路径 II

训练营day38:62. 不同路径、63. 不同路径 II

jiabao0520的博客 1354

力扣63-不同路径 II(Java详细题解)

而且dp[i] [j] 只能由 dp[i - 1] [j] 或 dp[i] [j - 1]得出。即本格只能从他的上一行格和左列格的路径得出,所以我们肯定要知道最上边一行和最左边一列的路径。如果没有出现差错,我们就可以不用打印,因为我是写题解,所以我就不添加核心代码以外的代码,不然代码显的有些冗余。dp[i] [j] 只能由 dp[i - 1] [j] 或 dp[i] [j - 1]得出。那么dp[i] [j]就是指到达第i行j列的不同的路径。即dp[i] [0] 和 dp[0] [i]的路径数。

2302_79761426的博客 862

算法训练Day39 | LeetCode62. 不同路径;LeetCode63.不同路径II

算法训练Day39 | LeetCode62. 不同路径;LeetCode63.不同路径II

weixin_47284299的博客 1082

DAY33|动态规划Part02|LeetCode:62.不同路径 、63. 不同路径 II

所以容易得出dp[i][j] = dp[i - 1][j] + dp[i][j - 1]。从递归公式dp[i][j] = dp[i - 1][j] + dp[i][j - 1] 中可以看出,一定是从左到右一层一层遍历,这样保证推导dp[i][j]的时候,dp[i - 1][j] 和 dp[i][j - 1]一定是有数值。这里要看一下递推公式dp[i][j] = dp[i - 1][j] + dp[i][j - 1],dp[i][j]都是从其上方和左方推导而来,那么从左到右一层一层遍历就可以了。

ning1437589742的博客 1012

力扣刷题day34|62不同路径、63不同路径 II

力扣刷题day34|62不同路径、63不同路径 II

Skyc的学习博客 718

代码随想录Day33 LeetCode T62不同路径 LeetCode T63 不同路径II

动规02

qiuqiushuibx的博客 499
上一篇: 【leetcode】面试题 04.12. 求和路径(dfs)
下一篇: 【洛谷】P2661 信息传递(并查集)
准图灵奖得主
博客等级 码龄8年 355粉丝 135原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值