【动态规划专栏】专题三:简单多状态dp--------3.删除并获得点数

简介: 【动态规划专栏】专题三:简单多状态dp--------3.删除并获得点数


题目来源

本题来源为:

Leetcode 740. 删除并获得点数

题目描述

给你一个整数数组 nums ,你可以对它进行一些操作。

每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。

开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。

题目解析

还是老样子,先做一下预处理:

我们将数组中的数保存在arr中,转化成一次“打家劫舍”问题

算法原理

1.状态表示

经验+题目要求

对于本题而言就是:

f[i]表示:选择到i位置时,nums[i]必选,此时能获得最大点数
g[i]表示:选择到i位置时,不选nums[i],此时能获得最大点数

2.状态转移方程

和之前一样:

在i位置选和不选两种情况

因此状态方程为:

f[i]=g[i-1]+nums[i];
g[i]=max(f[i-1],g[i-1]);

3.初始化

只有0位置会发生越界,初始化一下0位置即可

4.填表顺序

从左往右,两个表同时填

5.返回值

max(f[n-1],g[n-1])

代码实现

动态规划的代码基本就是固定的四步:

1.创建dp表
2.初始化
3.填表
4.返回值

本题完整代码实现:

class Solution 
{
public:
    int deleteAndEarn(vector<int>& nums) 
    {
        const int N =10001;
        //预处理:
        int arr[N]={0};
        for(auto x:nums)
            arr[x]+=x;
        //创建dp表
        vector<int> f(N);
        vector<int> g(N);
        //初始化
        f[0]=arr[0];
        //填表
        for(int i=1;i<N;i++)
        {
            f[i]=g[i-1]+arr[i];
            g[i]=max(f[i-1],g[i-1]);
        }
        //返回值
        return max(f[N-1],g[N-1]);
    }
};
相关文章
|
5G 调度
关键技术一:LTE 同构小区间干扰协调 | 带你读《5G UDN(超密集网络)技术详解》之十
本章节进一步详细解释 LTE 小小区相关的关键技术之一:LTE 同构小区间干扰协调,并且关联 着说明它们对后续 5G NR 小小区的基线性影响和适用情况。
关键技术一:LTE 同构小区间干扰协调 | 带你读《5G UDN(超密集网络)技术详解》之十
|
3月前
|
存储 人工智能 容灾
阿里云服务器2核8G、4核16G、8核32G配置热门实例性能对比与场景化选型指南
2核8G/4核16G/8核32G配置的阿里云服务器在阿里云活动中目前有经济型e、通用算力型u1、通用型g7、通用型g8y和通用型g9i五种实例可选,目前2核8G配置选择u1实例活动价格652.32元1年起,4核16G月付选择经济型e实例最低89元1个月,8核32G配置160元1个月起,本文将为大家解析经济型e、通用算力型u1、通用型g7及通用型g8y实例,帮助用户根据自身需求合理选择最适合的实例规格和配置。
|
9月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
311 15
|
2月前
|
人工智能 自然语言处理 供应链
智能体来了:老板如何用智能体降本增效,打造企业新增长引擎 ——黎跃春谈智能体赋能企业的自动化办公与管理新范式
智能体正成为企业智能化的核心驱动力,从替代重复劳动到增强决策、优化执行,助力老板降本增效。依托阿里云生态,智能体实现跨部门协同与流程自动化,推动企业管理从数字化迈向智能化新阶段。
|
2月前
|
人工智能 机器人
智能体来了|AI智能体时代的趋势与机会(2025趋势解读)
智能体不是AI终点,而是人与智能共生的起点。2025年,AI从工具进化为“行动伙伴”,重塑工作与学习方式。「智能体来了」推动全民智能体教育,助力个人转型、企业升级,抢占未来红利。
|
2月前
|
数据采集 监控
案例分析合约量化跟单在实战中的成败
本文聚焦合约量化跟单实战,通过拆解高波动行情下的典型案例,构建交易员、策略方、资金方等多角色需求画像,剖析信号滞后、滑点成本、风控约束等核心痛点。以场景化要素为锚点,提炼可溯源的决策链条与参数模板,建立从问题识别到验证优化的五步论证路径,实现策略从回测到实盘的高效转化,助力各类投资者提升跟单落地可行性与风险控制能力。(238字)
|
3月前
|
机器学习/深度学习 人工智能 图形学
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
358 9
|
3月前
|
机器学习/深度学习 人工智能 小程序
RL 和 Memory 驱动的 Personal Agent,实测 Macaron AI
人工智能不仅提升生产力,也重塑人际关系。Macaron AI 探索“哆啦A梦关系”,融合实用与情感,通过长期记忆和强化学习技术,实现深度个性化陪伴,开创人机互动新方式。
191 0
|
6月前
|
JSON 监控 API
深入研究:shopee商品详情API接口Python攻略
Shopee 商品详情 API 是用于获取 Shopee 平台商品详细信息的接口,支持开发者提取商品标题、价格、库存、描述和图片等多维度数据。该接口适用于电商数据分析、比价工具开发及商品监控等场景。请求方式为 GET,需提供 itemid(商品 ID)和 shopid(店铺 ID),返回格式为 JSON。部分功能可能需要 API 密钥或访问令牌认证。以马来西亚站点为例,URL 为 shopee.com.myapi/v4/item/get,不同国家站点域名可能有所不同。
|
8月前
|
人工智能 JSON 网络协议
Apipost支持协议全解析,从入门到摸鱼,轻松搞定!
Apipost是一款强大的协议调试工具,支持HTTP、gRPC、WebSocket、TCP、GraphQL等主流协议,甚至涵盖冷门金融协议如ISO8583和FIX。它不仅提供灵活的调试功能,还支持自动生成文档,大幅提升开发效率。文章详解各协议的应用场景与操作技巧,如HTTP国密算法增强、SSE实时流式传输调试、WebSocket长连接维护、GraphQL Schema自动生成等。此外,Apipost通过环境变量、脚本加持和文档生成等功能实现自动化调试,助你轻松搞定从入门到精通的各类需求。无论是HTTP还是复杂金融报文,Apipost都能让你事半功倍!

热门文章

最新文章