当前位置: 首页 > news >正文

[Algorithm][动态规划][路径问题][不同路径][不同路径Ⅱ][珠宝的最高价值]详细讲解

目录

  • 1.不同路径
    • 1.题目链接
    • 2.算法原理详解
    • 3.代码实现
  • 2.不同路径 II
    • 1.题目链接
    • 2.算法原理详解
    • 3.代码实现
  • 3.珠宝的最高价值
    • 1.题目链接
    • 2.算法原理详解
    • 3.代码实现


1.不同路径

1.题目链接

  • 不同路径

2.算法原理详解

  • 思路
    • 确定状态表示 -> dp[i][j]的含义

      • 走到dp[i][j]的时候,一共有多少种方式
        请添加图片描述
    • 推导状态转移方程

      • dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
    • 初始化:dp表多开一行和一列虚拟结点,避免处理边界

      • dp[0][1] = 1 || dp[1][0] = 1
        请添加图片描述
    • 确定填表顺序:从上往下,从左往右

    • 确定返回值:dp[n][m]

  • 上述如果dp表不多开那一行和一列虚拟结点会怎么样?
    • 需要做边界处理,将第一列和第一行先初始化为1

3.代码实现

int uniquePaths(int n, int m) 
{vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));dp[0][1] = 1;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}}return dp[n][m];
}

2.不同路径 II

1.题目链接

  • 不同路径 II

2.算法原理详解

  • 思路
    • 确定状态表示 -> dp[i][j]的含义

      • 走到dp[i][j]的时候,一共有多少种方式
        请添加图片描述
    • 推导状态转移方程

      • dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
        请添加图片描述
    • 初始化:dp表多开一行和一列虚拟结点,避免处理边界

      • dp[0][1] = 1 || dp[1][0] = 1
        请添加图片描述
    • 确定填表顺序:从上往下,从左往右

    • 确定返回值:dp[n][m]


3.代码实现

int uniquePathsWithObstacles(vector<vector<int>>& ob) 
{int n = ob.size(), m = ob[0].size();vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));dp[0][1] = 1;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){if(ob[i - 1][j - 1] == 0) // 注意下表映射关系{dp[i][j] = dp[i - 1][j] + dp[i][j - 1];}}}return dp[n][m];
}

3.珠宝的最高价值

1.题目链接

  • 珠宝的最高价值

2.算法原理详解

  • 思路
    • 确定状态表示 -> dp[i][j]的含义

      • 到达dp[i][j]的时候,此时的最大价值
    • 推导状态转移方程

      • dp[i][j] = max(dp[i - 1][j] + dp[i][j - 1]) + g[i][j]
        请添加图片描述
    • 初始化:dp表多开一行和一列虚拟结点,避免处理边界

      • 第一行和第一列全部初始化为0即可
    • 确定填表顺序:从上往下,从左往右

    • 确定返回值:dp[n][m]


3.代码实现

int jewelleryValue(vector<vector<int>>& frame) 
{int n = frame.size(), m = frame[0].size();vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0));for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + frame[i - 1][j - 1];}}return dp[n][m];
}

相关文章:

[Algorithm][动态规划][路径问题][不同路径][不同路径Ⅱ][珠宝的最高价值]详细讲解

目录 1.不同路径1.题目链接2.算法原理详解3.代码实现 2.不同路径 II1.题目链接2.算法原理详解3.代码实现 3.珠宝的最高价值1.题目链接2.算法原理详解3.代码实现 1.不同路径 1.题目链接 不同路径 2.算法原理详解 思路&#xff1a; 确定状态表示 -> dp[i][j]的含义 走到dp[…...

ChatGPT移动应用收入在GPT-4o发布后迎来最大涨幅

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

汉语拼音 如何 转化成粤语拼音 的

将汉语拼音&#xff08;普通话拼音&#xff09;转化为粤语拼音涉及到对声母、韵母以及声调的对照和调整。以下是详细的转换步骤和注意事项&#xff1a; 一、转换步骤 识别普通话拼音的声母和韵母查找对应的粤语拼音声母和韵母应用粤语声调 二、声母对照表 普通话拼音粤语拼…...

本地电子邮件测试工具-MailHog

通过MailHog&#xff0c;可以在浏览器中查看本机发的邮件内容&#xff0c;而无需发送到外网。 https://github.com/mailhog/MailHog在 macOS 环境下&#xff0c;下载文件后: 添加可执行权限:chmod x MailHog_darwin_amd64 运行:./MailHog_darwin_amd64 浏览器打开查看邮件:htt…...

Java18新特性

Java 18引入了若干新特性&#xff0c;以增强语言的功能性和性能。具体如下&#xff1a; 服务提供者接口&#xff08;Service Provider Interfaces, SPI&#xff09;&#xff1a;允许开发者为Java模块系统定义服务加载机制&#xff0c;从而能够更灵活地发现和加载服务实现。简单…...

大象资讯:PostgreSQL 17 Beta 1 发布!

↑ 关注“少安事务所”公众号&#xff0c;欢迎⭐收藏&#xff0c;不错过精彩内容~ PostgreSQL 全球开发小组 发布于 2024-05-23 PostgreSQL 全球开发小组宣布&#xff0c;PostgreSQL 17 的第一个测试版本现已可供下载。此版本包含 PostgreSQL 17 正式发布时将提供的所有功能的预…...

Rust:如何在 Windows 的 Linux 子系统(WSL)下安装

一、安装步骤 在Windows Subsystem for Linux (WSL)下安装Rust&#xff0c;可以按照以下步骤进行&#xff1a; 打开WSL终端&#xff1a; 首先&#xff0c;确保你的WSL已经安装并正常运行。你可以在Windows搜索栏中输入“WSL”并选择你安装的Linux发行版&#xff08;如Ubuntu&a…...

工具分享:VsCode注释神器,koro1FileHeader

他是有官方Wiki的。 https://github.com/OBKoro1/koro1FileHeader/wiki/ 项目在GitHub上开源。以下摘录部分wiki&#xff0c;用作介绍分享在这里插入代码片 如何找到setting.json设置模板 简单的输入命令 打开VSCode命令面板: mac: command p window: ctrl p输入> Ope…...

水面漂浮物生活垃圾识别检测系统

水面漂浮物生活垃圾识别检测系统通过现场监控摄像机对河道湖面等水体进行实时监测&#xff0c;水面漂浮物生活垃圾识别检测系统借助智能视频分析技术和YOLO深度学习技术&#xff0c;系统能够自动识别和抓拍水面上的垃圾漂浮物。一旦系统检测到有垃圾漂浮在水面上&#xff0c;立…...

通过python读取并发送二进制文件到串口

代码 #!python.exe """ filename send_bin.py brief According to the users input, read bin file, subpackage and send the file by UART. HowToUse send_bin.py -h author shadowThreeDgmail.com data 20220224 &q…...

前端笔记-day07

学成在线网站 文章目录 效果图代码展示index.htmlindex.cssbase.css 效果图 代码展示 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…...

【MySQL精通之路】INFORMATION_SCHEMA库-INNODB_METRICS表

INNODB_METRICS表提供了各种各样的INNODB性能信息&#xff0c;补充了INNODB性能模式表的特定重点领域。通过简单的查询&#xff0c;您可以检查系统的整体运行状况。通过更详细的查询&#xff0c;您可以诊断诸如性能瓶颈、资源短缺和应用程序问题等问题。 每个监视器表示InnoDB…...

React Native 之 定义全局状态管理库(九)

假设你正在使用基于单页面应用&#xff08;SPA&#xff09;的微前端框架。以下简化一个应用之间共享状态的例子。 1. 使用发布/订阅模式 // globalStateManager.js class GlobalStateManager { constructor() { this.subscribers {}; this.state {}; } subscribe(key…...

java线程池实战应用总结

一、线程池的创建方式 方式&#xff08;一&#xff09;&#xff1a;通过构造函数ThreadPoolExecutor()方式创建线程池 步骤1&#xff1a;先构建线程池 public class AsyncTaskExecutor {/*** 核心线程数*/private static final int corePoolSize 10;/*** 最大线程数*/priva…...

部署 harbor 创建私有项目

一在 Docker harbor 节点&#xff08;192.168.11.&#xff09;上操作 1 关闭防火墙防护 systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 2 安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-ma…...

在Linux系统中解决Java生成海报文字乱码和缺少字体文件的问题

在Linux系统中,如果缺少特定的字体文件,可以通过以下几种方法来解决: 1. 安装系统字体包 大多数Linux发行版提供了各种字体包,可以通过包管理器安装这些字体包。例如,在Debian/Ubuntu系统上,可以使用以下命令安装常见的字体包: # 安装基本的字体包 sudo apt-get updat…...

升级版网创教程wordpress插件自动采集并发布

主要功能&#xff1a; wordpress 插件主题系列支持自动采集并发布。 主要采集: 福缘&#xff0c;中创&#xff0c;冒泡 自动采集各大项目网进行整合发布到自己个人网站 插件话更新&#xff0c;减少网络请求&#xff0c;提升稳定性 代码完美开源 傻瓜式操作&#xff0c;一…...

MySQL 视图(1)

常用视图语句 -- 创建视图 CREATE VIEW t1_view AS SELECT * FROM t1; CREATE VIEW v AS VALUES ROW(1,2);-- 查询视图 SELECT * FROM t1_view;-- 查询视图的相关系统视图 SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = test AND TABLE_NAME =…...

在排序数组中查找元素的一个位置和最后一个位置-力扣

第一此次想到的解法是首先使用二分查找在排序数组中查找到一个指定元素&#xff0c;随后对该元素左右进行遍历&#xff0c;找到起始位置和结束位置&#xff0c;代码如下&#xff1a; class Solution { public:vector<int> searchRange(vector<int>& nums, int…...

系统分析师-案例分析-数据库

系统分析师-案例分析-数据库 更多软考资料 https://ruankao.blog.csdn.net/ 文章目录 系统分析师-案例分析-数据库数据库考察知识点规范化函数依赖范式1NF2NF3NF 规范化问题不规范化反规范化设计反规范化设计同步问题 并发控制性能优化完整性约束视图安全分布式数据库特点优点…...

[特殊字符] Meixiong Niannian画图引擎应用场景:独立音乐人专辑封面AI生成流程

Meixiong Niannian画图引擎应用场景&#xff1a;独立音乐人专辑封面AI生成流程 1. 项目简介 Meixiong Niannian画图引擎是一款专为个人GPU设计的轻量化文本生成图像系统&#xff0c;基于Z-Image-Turbo底座和meixiong Niannian Turbo LoRA技术构建。这个引擎针对通用画图场景进…...

OpenClaw成本优化方案:ollama GLM-4.7-Flash自建模型接口实践

OpenClaw成本优化方案&#xff1a;ollama GLM-4.7-Flash自建模型接口实践 1. 为什么需要关注OpenClaw的token消耗问题 第一次用OpenClaw完成自动化周报任务时&#xff0c;我盯着账单倒吸一口凉气——生成三份周报竟然消耗了接近15万token。这让我意识到&#xff0c;如果不解决…...

5个高效实用的英雄联盟工具集使用指南

5个高效实用的英雄联盟工具集使用指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是一款基于LCU API开发的开源…...

如何通过5个步骤为Windows 11 24H2 LTSC恢复微软商店功能

如何通过5个步骤为Windows 11 24H2 LTSC恢复微软商店功能 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否曾遇到过在Windows 11 24H2 LTSC系统中…...

Meixiong Niannian与SpringBoot微服务架构

Meixiong Niannian与SpringBoot微服务架构 1. 引言 在当今快速发展的AI应用领域&#xff0c;如何将强大的画图引擎无缝集成到企业级系统中是一个关键挑战。Meixiong Niannian作为一款高性能的AI画图引擎&#xff0c;能够生成高质量的图像内容&#xff0c;而SpringBoot微服务架…...

NaViL-9B部署案例:中小企业用双24GB显卡替代A100实现降本增效

NaViL-9B部署案例&#xff1a;中小企业用双24GB显卡替代A100实现降本增效 1. 项目背景与价值 在AI大模型应用日益普及的今天&#xff0c;中小企业面临着高昂的硬件投入成本。传统部署方案通常需要A100等高端显卡&#xff0c;单卡价格动辄数万元&#xff0c;让许多企业望而却步…...

从sipML5到现代框架:FreeSWITCH WebRTC客户端升级指南与选型建议

从sipML5到现代框架&#xff1a;FreeSWITCH WebRTC客户端升级指南与选型建议 如果你正在维护一个基于sipML5的FreeSWITCH WebRTC前端项目&#xff0c;可能已经感受到了技术债的压力——浏览器兼容性问题频发、功能扩展困难、社区支持几乎为零。这不是你的错&#xff0c;sipML5作…...

Qwen2.5-7B-Instruct效果展示:农业病虫害图像描述→防治方案生成

Qwen2.5-7B-Instruct效果展示&#xff1a;农业病虫害图像描述→防治方案生成 想象一下&#xff0c;一位农民在田间地头&#xff0c;用手机拍下一片叶子上的异常斑点。几分钟后&#xff0c;他不仅得到了这是什么病害的准确诊断&#xff0c;还收到了一份详细的、可操作的防治方案…...

Windows下OpenClaw安装指南:对接ollama GLM-4.7-Flash模型

Windows下OpenClaw安装指南&#xff1a;对接ollama GLM-4.7-Flash模型 1. 为什么选择OpenClaw GLM-4.7-Flash组合 作为一个长期在Windows环境下折腾AI工具的开发者&#xff0c;我一直在寻找一个既能保持本地数据隐私&#xff0c;又能灵活对接各类开源模型的自动化框架。Open…...

DeepSeek-OCR-2实战教程:OCR结果JSON Schema解析与结构化数据入库指南

DeepSeek-OCR-2实战教程&#xff1a;OCR结果JSON Schema解析与结构化数据入库指南 1. 项目简介 DeepSeek-OCR-2是基于深度学习的智能文档解析工具&#xff0c;专门针对结构化文档内容提取而设计。与传统的OCR工具只能提取纯文本不同&#xff0c;这个工具能够精准识别文档的排…...