动态规划(路径问题)
62. 不同路径
62. 不同路径 - 力扣(LeetCode)

动态规划思想第一步:描述状态~
dp[i][j]:表示走到i,j位置时,一共有多少种方法~
动态规划思想第二步:状态转移方程~

动态规划思想第三步:初始化(考虑边界情况)~


我们通过扩充数组大小可以节省初始化步骤,不过需要注意下标映射关系~
动态规划思想第四步:返回值~
return dp[m][n]
代码
//62 不同路径
class Solution
{
public:int uniquePaths(int m, int n){//创建dp表(注意扩充)vector<vector<int>> dp(m + 1, vector<int>(n + 1));//细节处理dp[0][1] = 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][n];}
};
其实动态规划核心就在于初始化和状态转移方程,之所以初始化主要考虑的就是填表边界情况,把特殊情况考虑了才方便让dp表一次到位。而状态转移方程尤其需要注意最近一步,一定得分析是如何到这一步的~
63. 不同路径 II
63. 不同路径 II - 力扣(LeetCode)

其实本道题跟上一道一样,唯一要注意的就是判定有无障碍物挡路~

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m = obstacleGrid.size();int n = obstacleGrid[0].size();vector<vector<int>> dp(m+1,vector<int> (n+1));dp[0][1] = 1;for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++){//小细节:dp表与原数组是对应不上的 if(obstacleGrid[i-1][j-1]==0){dp[i][j] = dp[i-1][j]+dp[i][j-1];}}}return dp[m][n];}
};
代码就是在上一道题的基础上多了一步判断,由于我们的dp表与原数组不是同等大小了,所以要记得对应位置的映射。
LCR 166. 珠宝的最高价值
LCR 166. 珠宝的最高价值 - 力扣(LeetCode)

也练习挺多道的了,这道题甚至感觉不用画图,就照着前面的套路添加一个判断大小即可~
class Solution {
public:int jewelleryValue(vector<vector<int>>& nums) {//小case,直接秒杀int m = nums.size();int n = nums[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1));for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++){dp[i][j] = nums[i-1][j-1]+max(dp[i-1][j],dp[i][j-1]);}}return dp[m][n];}
};
931. 下降路径最小和
931. 下降路径最小和 - 力扣(LeetCode)



class Solution {
public:int minFallingPathSum(vector<vector<int>>& matrix) {int m = matrix.size();vector<vector<int>> dp(m+1,vector<int>(m+2,INT_MAX));for(int i = 0;i<=m+1;i++){dp[0][i] = 0;}for(int i = 1;i<=m;i++){for(int j = 1;j<=m;j++){dp[i][j] = min(dp[i-1][j],min(dp[i-1][j-1],dp[i-1][j+1]))+matrix[i-1][j-1];}}int ret = INT_MAX;for(int i = 1;i<=m;i++){ret = min(ret,dp[m][i]);}return ret;}
};
64. 最小路径和
64. 最小路径和 - 力扣(LeetCode)


class Solution {
public:int minPathSum(vector<vector<int>>& grid) {//秒杀,分析越来越快了~int m = grid.size();int n = grid[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1,INT_MAX));dp[0][1] = 0;for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++){dp[i][j] = min(dp[i][j-1],dp[i-1][j])+grid[i-1][j-1];}}return dp[m][n];}
};
174. 地下城游戏
174. 地下城游戏 - 力扣(LeetCode)


class Solution {
public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int m = dungeon.size();int n = dungeon[0].size();vector<vector<int>> dp(m+1,vector(n+1,INT_MAX));dp[m][n-1] = dp[m-1][n] = 1;for(int i = m-1;i>=0;i--){for(int j = n-1;j>=0;j--){dp[i][j] = min(dp[i+1][j],dp[i][j+1])-dungeon[i][j];dp[i][j] = max(1,dp[i][j]);}}return dp[0][0];}
};
感觉讲得还不够好,不够详细,后面再作改善~
相关文章:
动态规划(路径问题)
62. 不同路径 62. 不同路径 - 力扣(LeetCode) 动态规划思想第一步:描述状态~ dp[i][j]:表示走到i,j位置时,一共有多少种方法~ 动态规划思想第二步:状态转移方程~ 动态规划思想第三步…...
python http调用视觉模型moondream
目录 一、什么是moondream 二、资源地址 三、封装了http进行接口请求 四、代码解析 解释 可能的改进 一、什么是moondream Moondream 是一个针对视觉生成任务的深度学习模型,专注于图像理解和生成,包括图像标注(captioning)、问题回答(Visual Question Answering,…...
Spark Streaming编程基础
文章目录 1. 流式词频统计1.1 Spark Streaming编程步骤1.2 流式词频统计项目1.2.1 创建项目1.2.2 添加项目依赖1.2.3 修改源目录1.2.4 添加scala-sdk库1.2.5 创建日志属性文件 1.3 创建词频统计对象1.4 利用nc发送数据1.5 启动应用,查看结果 2. 编程模型的基本概念3…...
深入 Flutter 和 Compose 的 PlatformView 实现对比,它们是如何接入平台控件
在上一篇《深入 Flutter 和 Compose 在 UI 渲染刷新时 Diff 实现对比》发布之后,收到了大佬的“催稿”,想了解下 Flutter 和 Compose 在 PlatformView 实现上的对比,恰好过去写过不少 Flutter 上对于 PlatformView 的实现,这次恰好…...
C# OpenCV机器视觉:红外体温检测
在一个骄阳似火的夏日,全球却被一场突如其来的疫情阴霾笼罩。阿强所在的小镇,平日里熙熙攘攘的街道变得冷冷清清,人们戴着口罩,行色匆匆,眼神中满是对病毒的恐惧。阿强作为镇上小有名气的科技达人,看着这一…...
FCA-FineDataLink认证
FCA-FineDataLink证书 Part.1:判断题 (总分:18分 得分:16) 第1题 判断题 数据同步只支持写入到已存在表,不支持自动建表(得分:2分 满分:2分) 正确答案:B 你的答案&…...
第19篇:python高级编程进阶:使用Flask进行Web开发
第19篇:python高级编程进阶:使用Flask进行Web开发 内容简介 在第18篇文章中,我们介绍了Web开发的基础知识,并使用Flask框架构建了一个简单的Web应用。本篇文章将深入探讨Flask的高级功能,涵盖模板引擎(Ji…...
js截取video视频某一帧为图片
1.代码如下 <template><div class"box"><div class"video-box"><video controls ref"videoRef" preload"true"src"https://qt-minio.ictshop.com.cn:9000/resource-management/2025/01/08/7b96ac9d957c45a…...
[云讷科技]Kerloud Falcon四旋翼飞车虚拟仿真空间发布
虚拟仿真环境作为一个独立的专有软件包提供给我们的客户,用于帮助用户在实际测试之前验证自身的代码,并通过在仿真引擎中添加新的场景来探索新的飞行驾驶功能。 环境要求 由于环境依赖关系,虚拟仿真只能运行在装有Ubuntu 18.04的Intel-64位…...
Jetson nano 安装 PCL 指南
本指南帮助 ARM64 架构的 Jetson Nano 安装 PCL(点云库)。 安装步骤 第一步:安装依赖 在终端中运行以下命令,安装 PCL 所需的依赖: sudo apt-get update sudo apt-get install git build-essential linux-libc-dev s…...
go-zero框架基本配置和错误码封装
文章目录 加载配置信息配置 env加载.env文件配置servicecontext 查询数据生成model文件执行查询操作 错误码封装配置拦截器错误码封装 接上一篇:《go-zero框架快速入门》 加载配置信息 配置 env 在项目根目录下新增 .env 文件,可以配置当前读取哪个环…...
Android中Service在新进程中的启动流程2
目录 1、Service在客户端的启动入口 2、Service启动在AMS的处理 3、Service在新进程中的启动 4、Service与AMS的关系再续 上一篇文章中我们了解了Service在新进程中启动的大致流程,同时认识了与客户端进程交互的接口IApplicationThread以及与AMS交互的接口IActi…...
论文速读|Matrix-SSL:Matrix Information Theory for Self-Supervised Learning.ICML24
论文地址:Matrix Information Theory for Self-Supervised Learning 代码地址:https://github.com/yifanzhang-pro/matrix-ssl bib引用: article{zhang2023matrix,title{Matrix Information Theory for Self-Supervised Learning},author{Zh…...
ubunut22.04安装docker(基于阿里云 Docker 镜像源安装 Docker)
安装 更新包管理器: sudo apt update 安装 Docker 的依赖包 sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release添加阿里云 Docker 镜像源 GPG 密钥: curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gp…...
k8s namespace绑定节点
k8s namespace绑定节点 1. apiserver 启用准入控制 PodNodeSelector2. namespace 添加注解 scheduler.alpha.kubernetes.io/node-selector3. label node 1. apiserver 启用准入控制 PodNodeSelector vim /etc/kubernetes/manifests/kube-apiserver.yaml spec:containers:- co…...
【ElementPlus】在Vue3中实现表格组件封装
预览 搜索筛选组件 <template><div><el-formref"formView":model"formData"label-width"auto"label-position"right":label-col-style"{ min-width: 100px }":inline"true"><el-form-item …...
cursor重构谷粒商城04——vagrant技术快速部署虚拟机
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…...
26、正则表达式
目录 一. 匹配字符 .:匹配除换行符外的任意单个字符。 二. 位置锚点 ^:匹配输入字符串的开始位置。 $:匹配输入字符串的结束位置。 \b:匹配单词边界。 \B:匹配非单词边界。 三. 重复限定符 *:匹配…...
SpringBoot使用MockMVC通过http请求controller控制器调用测试
说明 在Spring Boot中编写测试控制器调用是一个常见的需求,通常使用Spring的测试框架来完成。Spring Boot提供了多种方式来测试控制器,包括使用MockMvc进行模拟HTTP请求和响应的测试。 基本示例 1. 创建Spring Boot项目 首先,确保你已经创建了一个Spring Boot项目。如果…...
【Unity3D】Unity混淆工具Obfuscator使用
目录 一、导入工具 二、各种混淆形式介绍 2.1 程序集混淆 2.2 命名空间混淆 2.3 类混淆 2.4 函数混淆 2.5 参数混淆 2.6 字段混淆 2.7 属性混淆 2.8 事件混淆 三、安全混淆 四、兼容性处理 4.1 动画方法兼容 4.2 GUI方法兼容 4.3 协程方法兼容 五、选项 5.1 调…...
3个技巧让你轻松获取Steam创意工坊资源:WorkshopDL的跨平台下载解决方案
3个技巧让你轻松获取Steam创意工坊资源:WorkshopDL的跨平台下载解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 在游戏模组爱好者的日常中,总会…...
别再手动整理PDF了!用PaddleOCR的PP-StructureV3,一键把合同/论文转成Markdown
告别手动整理:用PP-StructureV3实现合同/论文一键转Markdown的高效方案 每次面对堆积如山的合同扫描件或学术论文PDF时,你是否还在手工复制粘贴内容?当需要从复杂排版的文档中提取结构化数据时,传统OCR工具往往束手无策——表格变…...
intv_ai_mk11应用场景:金融从业者用其生成监管政策要点摘要、投研报告初稿框架
intv_ai_mk11在金融领域的应用实践:政策摘要与投研报告生成 1. 金融从业者的AI助手需求 金融行业每天需要处理海量的监管政策和市场信息,传统人工处理方式面临三大挑战: 时效性压力:新政策发布后需要快速理解要点信息过载&…...
Phi-3-mini-4k-instruct-gguf惊艳案例:同一输入在不同温度下的创意表达多样性对比
Phi-3-mini-4k-instruct-gguf惊艳案例:同一输入在不同温度下的创意表达多样性对比 1. 模型简介与测试背景 Phi-3-mini-4k-instruct-gguf是微软推出的轻量级文本生成模型,特别适合问答、文本改写和创意写作等场景。这个模型最有趣的特点之一,…...
FocalNet目标检测、实例分割模型环境配置FocalNet目标检测、实例分割模型数据集调整FocalNet目标检测、实例分割模型代跑训练FocalNet目标检测、实例分割改进创新Focal
FocalNet目标检测、实例分割模型环境配置 FocalNet目标检测、实例分割模型数据集调整 FocalNet目标检测、实例分割模型代跑训练 FocalNet目标检测、实例分割改进创新 FocalNet环境配置:Windows、Ubuntu、Centos、Macos等系统环境,如果电脑拥有显卡&#…...
基于Cortex-M3和步进电机的数字钟控制及其语音播报系统设计
一、系统概述 系统以Cortex-M3内核单片机(如STM32F103C8T6)为核心,融合步进电机精密驱动、实时时钟(RTC)、语音合成播报三大功能,实现“数字钟精准显示机械指针动态指示定时语音报时”的一体化设计。系统通…...
OpenClaw性能调优:降低Phi-3-mini-128k-instruct长任务token消耗的技巧
OpenClaw性能调优:降低Phi-3-mini-128k-instruct长任务token消耗的技巧 1. 问题背景:长任务带来的token消耗困境 上周我在用OpenClaw处理一个文档整理任务时,遇到了一个棘手的问题。这个任务需要读取50多份Markdown格式的技术文档ÿ…...
电机轴承异响?5分钟教你用振动分析仪定位故障(附实测案例)
电机轴承异响诊断实战:振动分析仪操作全流程解析 轴承异响是工业现场最常见的电机故障之一,但很多维护工程师面对"嗡嗡"声或"咔嗒"响往往无从下手。上周某化工厂的水泵电机就因轴承早期磨损未被及时发现,导致整机报废&am…...
基于Quansar的双自由度直升机离散时间控制器的设计与仿真分析
基于Quansar的双自由度直升机离散时间控制器 简介:基于Quansar的双自由度直升机,它有两个直流电机驱动器,俯仰角0和偏航角中 离散时间控制器是为这两个螺旋桨使用根轨迹法设计的 分别使用Matlab对所设计的两个控制器进行仿真,分析…...
My SQL 数据库基础实例教程(第二单元学习笔记)
2.1关系数据库设计2.1.1 数据的加工1.现实世界现实世界是指客观存在的事物及他们相互之间的联系。2.信息世界信息世界是人们把现实世界的信息和联系通过“符号”记录下来,然后用规范化的数据库定义语言来描述而构成的一个抽象世界。3.计算机世界计算机世界将信息世界…...
