力扣动态规划-15【算法学习day.109】
前言
###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!
习题
1.不同路径II
题目链接:63. 不同路径 II - 力扣(LeetCode)
题面:
代码:
class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
return dfs(new HashMap<Pair,Integer>(), obstacleGrid, 0, 0);
}
private int dfs(Map<Pair,Integer> cache, int[][] arr, int i, int j) {
Pair p = new Pair(i,j);
if(cache.containsKey(p))return cache.get(p);
if(i>=arr.length||j>=arr[0].length||arr[i][j]==1)return 0;
if(i==arr.length-1&&j==arr[0].length-1)return 1;
int ref = dfs(cache,arr,i+1,j)+dfs(cache,arr,i,j+1);
cache.put(p,ref);
return ref;
}
}
后言
上面是动态规划相关的习题,共勉