/**
* 63. 不同路径 II
* @author wsq
* @date 2020/10/13
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?
示例:
输入:
[
[0,0,0],
[0,1,0],
[0,0,0]
]
输出: 2
解释:
3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:
1. 向右 -> 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右 -> 向右
链接:https://leetcode-cn.com/problems/unique-paths-ii
*/
package com.wsq.dp;
public class UniquePathsWithObstacles {
/**
* 这道题相对于之前的不同路径多了障碍,因此需要将存在障碍的方块到达路径直接设为0
* @param obstacleGrid
* @return
*/
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
// 状态矩阵
int[][] f = new int[m][n];
for(int i = 0; i < m; i++){
for(int j = 0; j < n; j++){
if(i == 0 && j == 0){
f[0][0] = obstacleGrid[0][0] == 1 ? 0 : 1;
continue;
}
if(obstacleGrid[i][j] == 1){
f[i][j] = 0;
}else if(i == 0){
if(f[0][j-1] == 0){
f[0][j] = 0;
}else{
f[0][j] = 1;
}
}else if(j == 0){
if(f[i - 1][0] == 0){
f[i][0] = 0;
}else{
f[i][0] = 1;
}
}else{
f[i][j] = f[i-1][j] + f[i][j-1];
}
}
}
return f[m-1][n-1];
}
}
相关推荐
Android 默认授予所有应用权限以及特殊权限处理
PackageManagerService作为android的主要系统服务之一,包含处理应用权限相关的职责。源码地址如下:在PMS成功启动时并收到回掉systemReady回进行应用权限授予。DefaultPermissionGrantPolicy为权限处理策略管理类。这里并没有赋予所有系统应用权限,所以当进行应用时还是会显示权限检查的弹框。可通过此方法进行所有应用权限赋予:如果不想所有应用都授予权限,可考虑在system/etc下的权限相关xml文件添加应用包名和所需权限。
每日一题(2020-07-06)63. 不同路径 II
[63. 不同路径 II] 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 **说明:**m 和 n 的值均不超过 100。 示例 1: 输入: [ [0,0,0], [0,1,0], [0,0,0] ] 输出: 2 解释
stata:stata软件教程(人大十八讲)(1) 第一章 stata入门
第一章 stata入门1.1 安装1.2 启用和退出1.3 打开和查看数据1.4 寻求帮助与网络资源1.5 命令示例1.6 几个环境设置1.7 复习与练习1.8 附录 注:教材为:Stata 统计分析教程 stata软件教程(人大十八讲) 中国人民大学出版社 陈传波 1.1 安装 1.2 启用和退出 1.3 打开和查看数据 1.4 寻求帮助与网络资源 1.5 命令示例 1.6 几个环境设置 1.7 复习与练习 1.8 附录 ...
LeetCode 63 不同路径 II
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用1和0来表示。 示例 1: 输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]] 输出:2 解释: 3x3 网格的正中间有一个障碍物。 从左上角到右下角一共有...
服务器测试之GPU基础汇总
GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。一个专门的图形核心处理器。GPU是显示卡的“大脑”,决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。可以形象的理解为90%的ALU(运算单元),5%的Control(控制单元)、5%的Cache(缓存单元)GPU的设计原理——总结为大量的简单运算。
【技术纵览】行为识别前沿模型演进:从CNN到多模态大模型
本文全面解析了行为识别技术从CNN到多模态大模型的演进历程,重点介绍了SlowFast、TimeSformer、VideoMAE和InternVideo等SOTA模型的核心创新与应用实践。通过对比分析各代模型在Kinetics-400等数据集上的表现,揭示了自监督学习和多模态融合如何推动行为识别准确率突破85%,并探讨了工业部署中的技术选型策略与优化方向。
【leetcode】63. 不同路径 II。 「动态规划」
很显然,这道题可以使用**动态规划**来做.我们先确认动态规划的状态转移方程,因为每次只能往右边或者下面移动,所以每次都有**两种移动的方案**,而这样就可以得出每一个位置处的前一步必定为上方或者左方,也就可以得出路线数为上方位置的路线数加上左方的路线数.这样也就列出了**状态转移方程**了,即**res[i][j]=res[i -1][j] + res[i][j - 1]**,当此处没有障碍物时.有障碍物就res等于0; 然后我们再分析一下**初始条件**,动动脑子可得,第一行和第一列上的不管哪个位置都
RK3588平台开发系列讲解(项目篇)常见模型结构
📢 AI 模型常采用人工神经网络来模拟人脑神经的记忆和处理信号的能力。常见的人工神经网络类型有深度神经网络(Deep Neural Network,DNN)、卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)等。
力扣63. 不同路径 II(动态规划)
力扣63. 不同路径 II(动态规划) 动态规划 大致思路与力扣63. 不同路径的方法一致。不过赋值前都要看obstacleGrid数组有无障碍,有障碍直接为0,无障碍则按照力扣63. 不同路径 I的方法 // // main.cpp // 63uniquePathsWithObstacles // // Created by MXQ on 2020/10/21. // #include <iostream> #include<vector> using na..
你知道吗?其实这些都是AI——农作物监控AI
随着全球人口的不断增长,粮食需求日益增加。为了应对这一挑战,现代农业正在迅速转型,引入了许多先进技术来提高生产效率和作物产量。在这些技术中,人工智能(AI)在农作物监控方面的应用显得尤为重要。通过利用AI技术,农民和农业专家可以更好地管理农作物的生长,预防病虫害,并优化灌溉和施肥方案,从而实现农业生产的智能化和精准化。
sas协议(SAS PL-3)之Zoning功能
1 Zoning overview SAS zoning is implemented by a set of zoning expander devices with zoning enabled that define a zoned portion of a service delivery subsystem (ZPSDS)服务子系统. The zoning expander devices control whether a phy is permitted to participate in
leetcode63. 不同路径 II,二维动态规划
leetcode63. 不同路径 II,二维动态规划
【汇编实战开发笔记】一段汇编代码如何“反编译”成C代码?
介绍了一种由汇编代码得到C代码的方法
leetcode63. 不同路径 II/动态规划
文章目录63. 不同路径 II基本思想1:动态规划基本思想2:dfs(超时)基本思想3:bfs(超时) 63. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 说明:m 和 n 的值均不超过 100。 示例 1: 输入: [
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
63. 不同路径 II【动态规划】
63.不同路径 II 题目链接:https://leetcode-cn.com/problems/unique-paths-ii/ 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 示例 1: 输入:obstacleGrid = .
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
LeetCode - 63. 不同路径II(动态规划、递归)
不同路径II 这个是对上一个进行了障碍物的判断,增加了中间动态规划的判断条件,实质上是不变的 题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]] 输.
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
LeetCode:63. 不同路径II 动态规划
LeetCode:63. 不同路径II 动态规划
Day39【动态规划】62.不同路径、63.不同路径 II
二维的 dp 数组
Leetcode:63. 不同路径 II 动态规划的理解
上面是修修改改的代码 但是还是复杂了 我的思路是通过dp数组进行递推 所以初始的时候先对通过遍历障碍数组 标记dp数组 但是实际上思路局限了 dp的递推确实是由上一状态递推而来 因此我想通过判断上一个状态dp数组的状态来判断上一个状态是不是障碍物 But障碍物数组和dp数组两者是可以联系起来的 dp的限制条件由障碍物数组来决定也可以 这样可简化代码。dp数组的初始化 这个时候我们要考虑这个递推递推到最底层的条件是什么 它必然是由几个量已知 结合递推公式 符合这一规律递推下去。debug 检查你是否有错。
【多维动态规划】Leetcode 63. 不同路径 II【中等】
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。:3x3 网格的正中间有一个障碍物。
【玩转动态规划专题】63. 不同路径 II【中等】
一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人的移动路径中不能包含 任何 有障碍物的方格。// m*n的数组 pd[m][n] 在m,n这个点上共有dp[m][n]种不同路径数量。输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输入:obstacleGrid = [[0,1],[0,0]]obstacleGrid[i][j] 为 0 或 1。解释:3x3 网格的正中间有一个障碍物。
Leetcode 63. 不同路径 II 动态规划
【代码】Leetcode 63. 不同路径 II 动态规划。
动态规划:leetcode 62.不同路径、63.不同路径II
c++ leetcode 动态规划
算法打卡day34|动态规划篇02| Leetcode 62.不同路径、63. 不同路径 II
JAVA算法|动态规划篇02| Leetcode 62.不同路径、63. 不同路径 II
[LeetCode]63. 不同路径 II(java实现)动态规划
[LeetCode]63. 不同路径 II(java实现)动态规划1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 思路(闫式dp分析法): 在此基础上,加一行判断语句,到障碍物直接跳过即可。 3. 解法 ---------------------------------------------------解法---------------------------------------
【动态规划】Leetcode 63. 不同路径 II
【动态规划】Leetcode 63. 不同路径 II
1510



被折叠的 条评论
为什么被折叠?



