740. 删除并获得点数

news/2024/9/19 20:45:03/文章来源:https://www.cnblogs.com/WrRan/p/18418463
题目链接 740. 删除并获得点数
思路 动态规划-打家劫舍-变体
题解链接 官方题解
关键点 优化版本:排序后,分段获取“连续子序列”的“打家劫舍值”后进行加和
时间复杂度 \(O(\#{\text{nums}}+\max\text{nums})\)\(O(n)\)(优化版本)
空间复杂度 \(O(\max\text{nums})\)\(O(n)\)(优化版本)

代码实现:

class Solution:def deleteAndEarn(self, nums: List[int]) -> int:maxv = max(nums)total = [0] * (maxv+1)for val in nums:total[val] += valdef rob(nums):sz = len(nums)dp0 = dp1 = 0for x in nums:dp0, dp1 = dp1, max(dp1, dp0+x)return dp1return rob(total)

代码实现(优化版本):

class Solution:def deleteAndEarn(self, nums: List[int]) -> int:        def rob(nums):sz = len(nums)dp0 = dp1 = 0for x in nums:dp0, dp1 = dp1, max(dp1, dp0+x)return dp1n = len(nums)answer = 0nums.sort()total = [nums[0]]for i in range(1, n):val = nums[i]if val == nums[i-1]:total[-1] += valelif val == nums[i-1]+1:total.append(val)else:answer += rob(total)total = [val]answer += rob(total)return answer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799346.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wordpress安装

1. 说明LNMP经典网站环境, Linux系统,Nginx网站服务,MySQL数据库(Mariadb),PHP(运行环境) Wordpress PHP代码.2. 建议的搭建顺序MySQL数据库(mariadb) PHP环境 php 7.x Nginx 直接安装即可2.1. 部署数据库查看代码 # 1.安装mariadb数据库 root@iZ2zei5cw2j6q770mgp5kvZ:~# apt …

一个cmakelist的例子(自动处理多个proto)

背景: 由于项目需要,把所有的proto文件放在了统一的文件夹中,为了方便更新以及加快编译速度,要把这个proto自动转成.cc .pb.h文件,再编译成so。 为此,写了个cmakelist.txt。主要功能: 1)自动遍历指定目录下所有proto文件,调用ptotoc生成.cc文件,如下图:cc文件存放在…

Hadoop(十三)HDFS DataNode

一、DataNode工作机制1、一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳 2、DataNode启动后向NameNode注册,通过后,周期性(6小时)的向NameNode上报所有的块信息 3、心跳是每3秒一…

Hadoop(十三)DataNode

一、DataNode工作机制1、一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳 2、DataNode启动后向NameNode注册,通过后,周期性(6小时)的向NameNode上报所有的块信息 3、心跳是每3秒一…

Hadoop(十二)NameNode 和 SecondaryNameNode

一、NN和2NN工作机制 1、NameNode中的元数据存储在哪里?存储在NameNode节点的磁盘中会导致效率过低,因为经常需要进行随机访问和响应客户请求;存储在内存中,一旦元数据丢失,整个集群就无法工作,也不合适。因此产生了在磁盘中备份元数据的FsImage。 引入Edits文件(只进行…

高效数据移动指南 | 如何快速实现数据库 MySQL 到 MongoDB 的数据同步?

本专题将基于实践经验,从常见需求入手,为大家介绍热门数据源与数据目标之间的数据同步(全量/增量)如何实现?了解如何快速搭建数据管道,实现数据的高效迁移与无缝同步。本文教程为:MySQL → MongoDB 的数据同步任务。在现代企业中,数据无处不在,贯穿于各个业务环节和系…

一文带你精通二项式反演!不服来看!

前言 原题:《二项式反演学习笔记》。 这里有我关于二项式反演的一些思考和领会,包含理论推导和在信息学竞赛中的应用。网络上的教程都太潦草了,难以深入理解。因此,这里将以详细的证明为主,介绍二项式反演在 OI 中的使用。 如果你只想快速浏览结论,可以点击这里查看结论。…

解决ZBLOG网站运行中出现JavaScript加载失败问题

当 Z-Blog 网站运行中出现“JavaScript 加载失败”的问题时,可能的原因有几个方面,包括但不限于插件冲突、HTTPS 配置问题、CDN 问题等。以下是针对这些问题的一些解决方案: 1. 插件冲突问题描述:某些插件可能与 Z-Blog 核心或其他插件存在冲突,导致 JavaScript 无法正常加…

zblog 404.php 怎么写,zblogphp主题错误之模板选择

在 Z-Blog PHP 中,如果你想要自定义 404 页面(即当用户访问不存在的页面时显示的页面),你可以创建一个 404.php 文件。下面是创建一个简单的 404 页面的基本步骤和示例代码: 创建 404.php 文件创建文件:在你的主题目录中创建一个名为 404.php 的文件。 添加基本 HTML 结构…

zblog上传安装主题插件不成功的原因和解决办法

当在 Z-Blog 中上传安装主题或插件不成功时,可能的原因有很多。下面列出了一些常见的原因及相应的解决办法: 1. 文件大小超出限制问题描述:上传的文件包可能超出了服务器允许的最大文件大小。 解决方法:检查后台的“全局设置”中的“允许上传文件的大小”,并适当增大这个值…

本地调试多服务

本地idea如果同一个服务,想开多个服务,只需要改下端口重新启动,配置如下 1、打开idea的Services (老版本的idea应该是Run bashboard) 2、如图所示的两个stockApplication就是相同的服务,不同的端口 3、点击其中一个StockApplication8082右击找到Copy Configuration 这样…

zblog显示Allowed memory size of 6553652 bytes exhauste

当 Z-Blog 显示 “Allowed memory size of 6553652 bytes exhausted” 错误时,这意味着 PHP 的内存限制已达到上限。这种错误通常发生在处理大量数据或执行复杂操作时。以下是解决此问题的一些常见步骤: 1. 增加 PHP 内存限制 方法一:修改 php.ini 文件定位 php.ini 文件找到…