当前位置:网站首页>leetcode刷题:动态规划04(不同路径)
leetcode刷题:动态规划04(不同路径)
2022-07-23 14:58:00 【涛涛英语学不进去】
62.不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
示例 1:

- 输入:m = 3, n = 7
- 输出:28
示例 2:
- 输入:m = 2, n = 3
- 输出:3
解释: 从左上角开始,总共有 3 条路径可以到达右下角。
- 向右 -> 向右 -> 向下
- 向右 -> 向下 -> 向右
- 向下 -> 向右 -> 向右
示例 3:
- 输入:m = 7, n = 3
- 输出:28
示例 4:
- 输入:m = 3, n = 3
- 输出:6
提示:
- 1 <= m, n <= 100
- 题目数据保证答案小于等于 2 * 10^9
- 根据数据的维度,建立一维或者二维数据区域,这是二维区域,就做成二维表格
- 初始化好值,因为第一行和第一列只要一种路线,所以初始化值为1
- 分析dp [i]的含义,dp [ i ]为当当前位置有多少种走法,就是把从左边来的所有走法和从上面来的所有走法加起来
- 根据dp[i]怎么来到的,构建赋值等式,也就是状态转移方程
package com.programmercarl.dynamic;
/** * @ClassName UniquePaths * @Descriotion TODO * @Author nitaotao * @Date 2022/7/23 9:13 * @Version 1.0 * https://leetcode.cn/problems/unique-paths/ * 62. 不同路径 **/
public class UniquePaths {
public int uniquePaths(int m, int n) {
/** * dp[ i ] 到达本位置有多少种走法 */
int[][] dp = new int[m][n];
dp[0][0] = 0;
//初始化第一行
for (int i = 0; i < n; i++) {
dp[0][i] = 1;
}
//初始化第一列
for (int i = 1; i < m; i++) {
dp[i][0] = 1;
}
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
//每个单元格的位置是左边格子或者上边格子移动过来的
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
return dp[m - 1][n - 1];
}
}

边栏推荐
- 面试官:如何用 Redis 实现分布式锁?
- 一加OnePlus 10T的一系列规格在产品发布前被披露
- Mysql: MySQL problem that is not a MySQL problem
- A series of specifications of oneplus 10t were disclosed before the product was released
- Thread pool, who am I? Where am I?
- 小程序商城如何精细化运营?
- 数智化时代文旅遇新机?中国移动咪咕造 “元宇宙第一岛”
- Thoughts on software quality system
- 乘风破浪!金融科技时代下的数字化转型之路
- Implementation of deep copy deepclone
猜你喜欢

Shrimp noodles: what do you know about the JVM memory layout?
![[MySQL Cluster fault recovery]](/img/bf/8073831d810293170c62356757c368.png)
[MySQL Cluster fault recovery]

深入理解机械系统的模态与振动

Log slimming operation: from 5g to 1g!

Differences between nvisual generic cabling management software and network management software

职场3道坎:年薪30万、50万、100万

isEmpty 和 isBlank 的用法区别,至少一半的人答不上来...

可视化机房管理

为啥一问 JVM 就 懵B ???

Preliminary tutorial of Hezhou esp32c3 PIO Arduino development framework based on vscode
随机推荐
Time series data in industrial Internet of things
单细胞文献学习(part6)--ForestFireClustering for sc sequencing combines iterative label propagation with ...
[operation] Yan Yi (Internet new technology operation)
食品安全|喝鲜奶可能感染结核病?带你了解什么是牛奶灭菌
几何参数化重构
面试官:如何用 Redis 实现分布式锁?
Transfer business append log (transaction propagation behavior)
Typescript 清空数组
来自某学生的求助,干了,闲暇能帮就帮一把!
Detailed explanation of SQL error reporting and blind annotation
[introduction series of redis] redis builds master-slave servers
LeetCode_ 724_ Find the central subscript of the array
Differences between nvisual generic cabling management software and network management software
July training (day 23) - dictionary tree
工业物联网中的时序数据
Pymoo学习 (2):带约束的双目标优化问题
12张图+6K字图解ZGC垃圾回收器及调优技巧
In depth understanding of USB communication protocol
食品安全|吃皮蛋会铅中毒?了解这几点后放心吃
SQL报错盲注详解