当前位置:网站首页>Force deduction 62 different paths (the number of all paths from the upper left to the lower right of the matrix) (dynamic planning)
Force deduction 62 different paths (the number of all paths from the upper left to the lower right of the matrix) (dynamic planning)
2022-07-07 06:24:00 【Pei Nanwei_】
Today I come across a dynamic programming problem that I think is very valuable . From this question , I feel I have a deeper understanding of Dynamic Planning , You can see that it doesn't help you .
First look at the topic :
A robot is in a m x n The top left corner of the grid , The robot can only move down or right one step at a time . The robot tries to reach the lower right corner of the grid and asks how many different paths there are ?
Example
Input :m = 3, n = 2
Output :3
explain :
From the top left corner , All in all 3 Path to the bottom right .
1. towards the right -> Down -> Down
2. Down -> Down -> towards the right
3. Down -> towards the right -> Down
answer :
From the title , You can only move down or right at a time
From this we infer ===》 The number of paths to a grid , Determined by its left grid and upper grid
From this we infer ===》 Here we can use the idea of dynamic programming to solve
From this dynamic equation ===》 dp[i][j] = dp[i-1][j] + dp[i][j-1]
thus , We have solved half the problem , Then we think about the first column and the first row , Because you can only move down or right at a time , therefore Each grid in the first row can only be moved to the right from the grid on its left , So the first line dp[0][j] All for 1, The first column of lattice is the same .
This concludes the analysis , List codes
public int uniquePaths(int m, int n) {
int[][] dp = new int [m][n];
for(int i=0;i<n;i++){
dp[0][i] = 1;
}
for(int i=0;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];
}
Okay , That's all for this article , Favorite students can like the collection , Have a problem , Can comment , Or leave a message , I will give you feedback at the first time , Thank you for watching. !!
notes : This article is for me to share my learning experience , There are mistakes or areas that need to be corrected , Please correct me. , I will accept with an open mind
边栏推荐
- Calculation model FPS
- [FPGA tutorial case 14] design and implementation of FIR filter based on vivado core
- Redis(一)——初识Redis
- 谷歌 Chrome 浏览器发布 103.0.5060.114 补丁修复 0-day 漏洞
- A freshman's summary of an ordinary student [I don't know whether we are stupid or crazy, but I know to run forward all the way]
- Ant manor safety helmet 7.8 ant manor answer
- Implementation of VGA protocol based on FPGA
- When we talk about immutable infrastructure, what are we talking about
- Talking about reading excel with POI
- From "running distractor" to data platform, Master Lu started the road of evolution
猜你喜欢
随机推荐
Crudini profile editing tool
Jstat pour la commande JVM: voir les statistiques JVM
那些自损八百的甲方要求
jvm命令之 jcmd:多功能命令行
骑士战胜魔王(背包&dp)
3531. Huffman tree
Deep clustering: joint optimization of depth representation learning and clustering
Ant manor safety helmet 7.8 ant manor answer
当我们谈论不可变基础设施时,我们在谈论什么
微信小程序隐藏video标签的进度条组件
软件测试的几个关键步骤,你需要知道
可极大提升编程思想与能力的书有哪些?
Crudini 配置文件编辑工具
ICML 2022 | explore the best architecture and training method of language model
为不同类型设备构建应用的三大更新 | 2022 I/O 重点回顾
JVM 全面深入
go-microservice-simple(2) go-Probuffer
一段程序让你明白什么静态内部类,局部内部类,匿名内部类
How to solve sqlstate[hy000]: General error: 1364 field 'xxxxx' doesn't have a default value error
Jstat of JVM command: View JVM statistics