当前位置:网站首页>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
边栏推荐
猜你喜欢
随机推荐
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]
Rk3399 platform development series explanation (WiFi) 5.53, hostapd (WiFi AP mode) configuration file description
MySQL(十)
哈趣投影黑馬之姿,僅用半年强勢突圍千元投影儀市場!
Laravel uses Tencent cloud cos5 full tutorial
Niuke Xiaobai monthly race 52 E. sum logarithms in groups (two points & inclusion and exclusion)
Peripheral driver library development notes 43: GPIO simulation SPI driver
Ctfshow-- common posture
JVM命令之- jmap:导出内存映像文件&内存使用情况
JVM监控及诊断工具-命令行篇
【GNN】图解GNN: A gentle introduction(含视频)
那些自损八百的甲方要求
From "running distractor" to data platform, Master Lu started the road of evolution
JVM命令之 jstat:查看JVM統計信息
Database notes 04
UIC(组态UI工程)公版文件库新增7款行业素材
基于FPGA的VGA协议实现
牛客小白月赛52 E.分组求对数和(二分&容斥)
Redisl garbled code and expiration time configuration
Test the foundation of development, and teach you to prepare for a fully functional web platform environment








