算法训练营day34(补), 动态规划2

//62. 不同路径

func uniquePaths(m int, n int) int {

dp := make(\[\]\[\]int, m)

// 行赋初始值为1

for i := range dp {

dpi = make(\[\]int, n)

dpi0 = 1

}

// 列赋初始值为1

for j := 0; j < n; j++ {

dp0j = 1

}

for i := 1; i < m; i++ {

for j := 1; j < n; j++ {

dpij = dpi-1j + dpij-1

}

}

return dpm-1n-1

}

//63. 不同路径 II

func uniquePathsWithObstacles(obstacleGrid \[\]\[\]int) int {

m := len(obstacleGrid)

n := len(obstacleGrid0)

//如果在起点或终点出现了障碍,直接返回0

if obstacleGridm-1n-1 == 1 || obstacleGrid00 == 1 {

return 0

}

dp := make(\[\]\[\]int, m)

for i := range dp {

dpi = make(\[\]int, n)

}

// 行赋初始值为1,有障碍物停止

for i := 0; i < m && obstacleGridi0 == 0; i++ {

dpi0 = 1

}

// 列赋初始值为1,有障碍物停止

for j := 0; j < n && obstacleGrid0j == 0; j++ {

dp0j = 1

}

for i := 1; i < m; i++ {

for j := 1; j < n; j++ {

//有障碍物跳过

if obstacleGridij != 1 {

dpij = dpi-1j + dpij-1

}

}

}

return dpm-1n-1

}

相关推荐
To_OC1 小时前
LC 35 搜索插入位置:二分查找谁都会,边界条件谁写谁懵
javascript·算法·leetcode
码哥DFS2 小时前
二叉树的直径
开发语言·javascript·算法
营养充电站5 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
人工智能·算法·docker·jupyter
技术小黑5 小时前
RNN算法实战系列05 | 天气预测
人工智能·rnn·算法
yiqiefeimeng6 小时前
Rust还是Go?编程语言的未来之争
rust·go·编程语言·技术社区·未来之争
唐青枫7 小时前
别把 GORM 当 SQL 生成器:Go GORM 从模型映射到事务实战详解
go
Ivanqhz8 小时前
php8 use-def链
算法·php
evans在进步8 小时前
LeetCode 189 轮转数组:三次反转原地解决,图解 Java 实现
java·算法·leetcode
歌_顿8 小时前
Drawing_To_Model
算法