代码随想录day39 || 动态规划 || 不同路径
62.不同路径
● 力扣题目链接
● 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
● 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
● 问总共有多少条不同的路径?
思路
● dp数组初始化,第一行第一列是1,然后某个位置只能从上面或者左面过来
● 时间复杂度:O(m × n)
● 空间复杂度:O(m × n)
代码
class Solution {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];}
}
63. 不同路径 II
● 力扣题目链接
● 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。
● 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
● 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?
思路
● 在初始化和遍历的时候加上是否是障碍物的判断
代码
class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;int n = obstacleGrid[0].length;int[][] dp = new int[m][n];for (int i = 0; i < m && obstacleGrid[i][0] == 0; i++) {dp[i][0] = 1;}for (int i = 0; i < n && obstacleGrid[0][i] == 0; i++) {dp[0][i] = 1;}for (int i = 1; i < m; i++) {for (int j = 1; j < n; j++) {dp[i][j] = (obstacleGrid[i][j] == 0) ? dp[i - 1][j] + dp[i][j - 1] : 0;}}return dp[m - 1][n - 1];}
}
// 空间优化
class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;int n = obstacleGrid[0].length;int[] dp = new int[n];for (int i = 0; i < n && obstacleGrid[0][i] == 0; i++) {dp[i] = 1;}for (int i = 1; i < m; i++) {for (int j = 0; j < n; j++) {if (obstacleGrid[i][j] == 1) dp[j] = 0;else if (j != 0) dp[j] += dp[j - 1];}}return dp[n - 1];}
}
相关文章:
代码随想录day39 || 动态规划 || 不同路径
62.不同路径 ● 力扣题目链接 ● 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 ● 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 ● 问总共有…...
电商平台API接口采集电商平台淘宝天猫京东拼多多数据获取产品详情信息,销量,价格,sku案例
淘宝SKU详情接口是指,获取指定商品的SKU(Stock Keeping Unit,即库存量单位)的详细信息。SKU是指提供不同的商品参数组合的一个机制,通过不同的SKU来标识商品的不同组合形式,如颜色、尺寸等。SKU详情接口可以…...
The ‘<‘ operator is reserved for future use. 错误解决
The < operator is reserved for future use. 错误解决 在 PowerShell 终端执行 python learnstock.py < ldata.txt 发生错误, The < operator is reserved for future use.解决方法, cmd /c python learnstock.py < ldata.txt完结&#x…...
vulnhub靶机Thoth-Tech
下载地址:https://download.vulnhub.com/thothtech/Thoth-Tech.ova 主机发现 arp-scan -l 目标:192.168.21.148 端口扫描 nmap --min-rate 10000 -p- 192.168.21.148 服务扫描 nmap -sV -sT -O -p21,22,80 192.168.21.148 漏洞扫描 nmap --scriptvu…...
不可思议,无密码登录所有网站!
hello,我是小索奇 居然可以免密码登录你的网站?听起来是不是很恐怖 确实如此,Cookie可以用于保持用户在网站上的登录状态,从而实现 免密码登录,学会了不要做坏事哈 这里仅做免密码登录的实操,就不介绍Cooki…...
深度学习编译器关键组件
1 高层中间代码 为了克服传统编译器中采用的IR限制DL模型中复杂计算的表达的局限性,现有的DL编译器利用高层IR(称为图IR)进行高效的代码优化设计。 1.1 图表示 基于DAG的IR:基于DAG的IR是编译器构建计算图的最传统方法之一&…...
【C++】string类模拟实现下篇(附完整源码)
目录 1. resize2. 流插入<<和流提取>>重载2.1 流插入<<重载2.2 流提取 << 3. 常见关系运算符重载4. 赋值重载4.1浅拷贝的默认赋值重载4.2 深拷贝赋值重载实现4.3 赋值重载现代写法 5. 写时拷贝(了解)6.源码6.1 string.h6.2 test.cpp 1. res…...
Android高级开发-APK极致优化
九道工序 1. SVG(Scalable Vector Graphics)可缩放矢量图 使用矢量图代替位图可以减小 APK 的尺寸,因为可以针对不同屏幕密度调整同一文件的大小,而不会降低图像质量。 矢量图首次加载时可能消耗更多的 CPU 资源。之后,二者的内存使用率和…...
Rocketmq--消息驱动
1 MQ简介 1.1 什么是MQ MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。 1.2 MQ的应用场景 1.2.1 异步解耦 最常见的一个场景是用户注册后,需要发送注册邮件和短信通…...
华为云云耀云服务器L实例评测|centos系统搭建git私服
搭建git私服 前言一、华为云云耀云服务器L实例租用二、华为云云耀云服务器L实例安装git三、华为云云耀云服务器L实例git配置1.创建文件用于存放公钥2.设置文件权限3.配置本地公钥 四、华为云云耀云服务器L实例部署git仓库四、git仓库到本地总结 前言 之前一直想搭建一个属于自…...
苹果CMS主题 MXonePro二开优化修复开源版影视网站源码
MXPro模板主题(又名:mxonepro)是一款基于苹果cms程序的一款全新的简洁好看UI的影视站模板类似于西瓜视频,不过同对比MxoneV10魔改模板来说功能没有那么多,也没有那么大气,但是比较且可视化功能较多简洁且有周更记录样式等多功能后台设置&…...
【新版】系统架构设计师 - 软件架构设计<轻量级架构>
个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 软件架构设计<轻量级架构>考点摘要轻量级架构表示层业务逻辑层持久层数据库 SSH与SSMORMHibernate与Mybatis 架构 - 软件架构设计<轻量级架构> 考点…...
系统架构设计专业技能 ·结构化需求分析 - 数据流图
现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 结构化需求分析 - 数据流图 一、数据流图的基本概念二、需…...
linux内核分析:线程和进程创建,内存管理
lec18-19:进程与线程创建 lec20-21虚拟内存管理 内核代码,全局变量这些只有一份,但是内核栈有多份,这可能就是linux线程模型1对1模式的由来。通过栈来做的 x86 CPU支持分段和分页(平坦内存模式)两种 分段,选择子那里就有特权标记了...
SpringMvc根据返回值类型不同处理响应
目录 一、介绍 二、返回值为void (1)控制层方法 三、返回值为String (1)控制层 四、返回值为ModelAndView (1)控制层方法 (2)jsp页面 一、介绍 我们可以通过控制器方法的返回…...
jq命令安装与使用
目录 一、简介二、下载及安装1.Linux 安装2.Windows 安装3.测试安装结果 三、jq用法1.基本语法2.常见用法1)格式化 JSON2)获取属性3)属性不存在情况处理4)数组遍历、截取、展开5)管道、逗号、加号6)数据构造…...
网络面试题汇总
简述 TCP 连接的过程(淘系) 参考答案: TCP 协议通过三次握手建立可靠的点对点连接,具体过程是: 首先服务器进入监听状态,然后即可处理连接 第一次握手:建立连接时,客户端发送 syn 包…...
Java————初始集合框架
一 、 集合框架 Java 集合框架Java Collection Framework ,又被称为容器container , 是定义在 java.util 包下的一组接口interfaces 和其实现类classes 。 其主要表现为将多个元素element 置于一个单元中, 用于对这些元素进行快速、便捷的存…...
SpringMvc如何向context域设置数据
目录 (1)控制层方法 (2)jsp页面 context作用域表示在整个应用范围都有效。在SpringMVC中对context作用域传值,只能使用ServletContext对象来实现。但是该对象不能直接注入到方法参数中,需要通过HttpSessi…...
深入探索智能问答:从检索到生成的技术之旅
目录 一、智能问答概述1. **语义理解**2. **知识库和数据库**3. **上下文感知**4. **动态学习和自适应** 二、发展历程1. **基于规则的系统**2. **统计方法的兴起**3. **深度学习和神经网络的突破**4. **预训练模型** 三、智能问答系统的主要类型四、基于知识库的问答系统五、基…...
AI编程助手技能库agent-skills:从增量实现到安全审计的实战指南
1. 项目概述:agent-skills,一个为AI编码助手赋能的技能库如果你和我一样,日常重度依赖Cursor、Claude Code这类AI编程助手,那你肯定也遇到过类似的瓶颈:助手给出的代码片段虽然语法正确,但总感觉“差点意思…...
华为OD新系统机试真题 2026.5.10 - 美观的灯笼
美观的灯笼(Py/Java/C/C/Js/Go)题解 华为OD新系统机试真题 华为OD新系统上机考试真题 5月10号 100分题型 华为OD新系统机试真题目录点击查看: 华为OD新系统机试真题题库目录|机考题库 算法考点详解 题目描述 春节将至,工人要在古镇老街挂灯笼。街上有…...
OpenCode 的工具体系:给大模型装上操控代码库的“手”与“眼
要在代码库里真正帮上忙,光有聪明的脑子还不够,大语言模型(LLM)还需要能够执行具体操作的“工具”。OpenCode 把这些工具视为模型与项目环境之间的纽带——读取文件、修改代码、运行命令、查文档,甚至主动上网搜索&…...
ARM架构线程私有内存管理及TPMAX0_EL1寄存器详解
1. ARM架构线程私有内存管理概述在ARMv8/v9架构中,线程私有内存(Thread-Private Memory)是一种重要的内存保护机制。它允许操作系统为每个线程定义专属的内存区域,其他线程无法访问,从而提供硬件级别的内存隔离。这种机…...
ARM架构ACTLR寄存器详解与性能优化实践
1. ARM架构中的ACTLR寄存器深度解析在ARMv7/v8架构中,系统寄存器扮演着处理器与操作系统间的关键接口角色。作为其中的特殊存在,ACTLR(Auxiliary Control Register)辅助控制寄存器为开发者提供了对处理器底层行为的精细控制能力。…...
Ciao TLS证书监控:如何避免SSL证书过期导致的服务中断
Ciao TLS证书监控:如何避免SSL证书过期导致的服务中断 【免费下载链接】ciao HTTP checks & tests (private & public) monitoring - check the status of your URL 项目地址: https://gitcode.com/gh_mirrors/ci/ciao 在当今数字化时代,…...
告别马赛克!用html2canvas生成高清长图,我踩过的坑和最终方案
告别马赛克!用html2canvas生成高清长图,我踩过的坑和最终方案 去年接手一个电商活动页项目时,产品经理要求在H5页面底部添加"生成分享图"功能。本以为用html2canvas这个老牌库能轻松搞定,结果生成的图片模糊得像打了马赛…...
CANN/ops-math OneHot算子
OneHot 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√…...
Ironclaw:基于Rust的现代化命令行工具集,重塑开发效率
1. 项目概述:一个面向开发者的现代化命令行工具集在当今的软件开发工作流中,命令行界面(CLI)依然是开发者与系统、服务交互的核心桥梁。无论是进行本地开发、自动化部署、系统运维还是数据处理,一个高效、可靠、符合直…...
星期天实训内容
文章目录 1、测试代码照片2、流水灯视频2.1 测试代码2.1 视频 3、独立按键视频(点亮4个灯)3.1 代码3.2 视频 4、独立按键视频(点亮8个灯)5、数码管显示“000000”或者“111111”6、数码管显示“123456”7、数码管显示“11.12.13”…...
