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

删除并获得点数

问题描述

删除并获得点数

在这里插入图片描述

解题思路

本题的解题思路就是将我们原问题中的数据进行重新整理,统计到一个用数组实现的哈希表中,哈希表中记录原数组中出现的每一个元素的个数。然后我们再对这个数组用打家劫舍模型处理即可
在这里插入图片描述

确定本题的状态表示

dp[i]表示的是

确定本题的状态转移方程

根据已知条件:dp[0]=0,dp[1]=1,dp[2]=1
本题的状态转移方程是:

填表求值

根据初始条件和状态转移方程,确定填表顺序,进而逐步填满dp表,最终返回题目要的结果

代码实现

class Solution {
public:int deleteAndEarn(vector<int>& nums) {const int N = 10001;// 1. 预处理int arr[N] = {0};for(auto x : nums) arr[x] += x;// 2. 在 arr 数组上,做一次“打家劫舍”问题// 创建 dp 表vector<int> f(N);auto g = f;// 填表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]);}
};

自己写的

class Solution {
public:int deleteAndEarn(vector<int>& nums) {const int N=10001;vector<int> hash(N,0);vector<int> f(N),g(N);f[0]=hash[0];g[0]=0;for(auto & x:nums) hash[x]+=x;for(int i=1;i<N;i++){f[i]=g[i-1]+hash[i];g[i]=max(f[i-1],g[i-1]);}return max(f[N-1],g[N-1]);}
};
http://www.lryc.cn/news/625016.html

相关文章:

  • label studio标注时序数据
  • 力扣热题100------19.删除链表的倒数第N个结点
  • 深度学习篇---卷积
  • Linux unistd.h 包含功能
  • Spring 三级缓存:破解循环依赖的底层密码
  • 使用Idea安装JDK
  • [Code Analysis] docs | Web应用前端
  • 计算机视觉(9)-实践中遇到的问题(六路相机模型采集训练部署全流程)
  • OpenTelemetry、Jaeger 与 Zipkin:分布式链路追踪方案对比与实践
  • 大模型的底层运算线性代数
  • 关系型数据库与非关系型数据库
  • 母猪姿态转换行为识别:计算机视觉与行为识别模型调优指南
  • 我的 LeetCode 日记:Day 9 - 字符串终章与 KMP 算法
  • Baumer高防护相机如何通过YoloV8深度学习模型实现手势识别和指尖检测识别(C#代码UI界面版)
  • 第十六届蓝桥杯青少组C++省赛[2025.8.10]第二部分编程题(6、魔术扑克牌排列)
  • 算法题——字符串
  • RecSys:排序中的融分公式与视频播放建模
  • OVS:ovn为什么默认选择Geneve作为二层隧道网络协议?
  • 【EI会议征稿通知】第五届高性能计算、大数据与通信工程国际学术会议(ICHBC 2025)
  • 人工智能与生物科技的融合:重塑生命未来的无限可能​
  • android 实现表格效果
  • 力扣(LeetCode) ——100. 相同的树(C语言)
  • Rust 异步中的 Waker
  • PMP-项目管理-十大知识领域:资源管理-管理团队、设备、材料等资源
  • OpenCV Python——Numpy基本操作(Numpy 矩阵操作、Numpy 矩阵的检索与赋值、Numpy 操作ROI)
  • 3D检测笔记:基础坐标系与标注框介绍
  • JAiRouter 架构揭秘:一个面向 AI 时代的响应式网关设计
  • JUC读写锁
  • 宁波市第八届网络安全大赛初赛(REVERSE-Writeup)
  • 基于Spring Boot+Vue的社区便民服务平台 智慧社区平台 志愿者服务管理