当前位置:网站首页>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
边栏推荐
- 软件测试的几个关键步骤,你需要知道
- 693. Travel sequencing
- [FPGA] EEPROM based on I2C
- 开发者别错过!飞桨黑客马拉松第三期链桨赛道报名开启
- Software testing knowledge reserve: how much do you know about the basic knowledge of "login security"?
- C语言面试 写一个函数查找两个字符串中的第一个公共字符串
- vim映射大K
- FlexRay通信协议概述
- JVM命令之 jstat:查看JVM統計信息
- Laravel uses Tencent cloud cos5 full tutorial
猜你喜欢

Redis(二)—Redis通用命令

Check point: the core element for enterprises to deploy zero trust network (ztna)

软件测试的几个关键步骤,你需要知道

为不同类型设备构建应用的三大更新 | 2022 I/O 重点回顾

直击2022ECDC萤石云开发者大会:携手千百行业加速智能升级

ETCD数据库源码分析——从raftNode的start函数说起

go-microservice-simple(2) go-Probuffer

Test the foundation of development, and teach you to prepare for a fully functional web platform environment

【GNN】图解GNN: A gentle introduction(含视频)

JVM命令之 jstat:查看JVM統計信息
随机推荐
Solve pod install error: FFI is an incompatible architecture
Markdown 并排显示图片
[shell] summary of common shell commands and test judgment statements
Experience of Niuke SQL
window下面如何安装swoole
如何解决数据库插入数据显示SQLSTATE[HY000]: General error: 1364 Field ‘xxxxx‘ doesn‘t have a default value错误
Swagger3 configuration
Deep clustering: joint optimization of depth representation learning and clustering
K8s running Oracle
2022Android面试必备知识点,一文全面总结
Calculation model FPS
MySQL(十)
Crudini 配置文件编辑工具
SubGHz, LoRaWAN, NB-IoT, 物联网
When we talk about immutable infrastructure, what are we talking about
Crudini profile editing tool
You don't know the complete collection of recruitment slang of Internet companies
ICML 2022 | explore the best architecture and training method of language model
How to keep accounts of expenses in life
高并发大流量秒杀方案思路