力扣740-删除并获得点数

2024-02-19 06:32
文章标签 力扣 删除 点数 获得 740

本文主要是介绍力扣740-删除并获得点数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        当选了第i个数的时候就不能再选第i-1和第i+1的数,则在解题的时候可以考虑将原始数组转为可以利用动态规划算法的数组处理,这样就比较简单了。只是这样空间复杂度会增加一点。

package likou;
/** 删除并获得点数* 题干:* 	给你一个整数数组nums,你可以对它进行一些操作;* 	每次操作中,选择任意一个nums[i]删除它并获得 nums[i]的点数;* 	 	然后你必须删除所有等于nums[i]-1和nums[i]+1的元素* 	开始你拥有 0 个点数,返回你能通过这些操作获得的最大点数;*/
public class Demo740 {/** 假设输入数组为nums,其中1 <= nums[i] <= 10000* 删除第i个元素,int temp = nums[i];* 则要求删除num数组中所有值等于temp-1和temp+1的值,然后再重新选* 要求返回的数字最大,则肯定是要能选点数最多的数据尽可能多* 	所选的数据尽可能多* 设计思路:* 		步骤1.先定义一个数组,下标为nums[i]的值,则i需要取nums数组中的最大值*      步骤2.对nums数组遍历,下标为nums[i]的值,相当于把数组转为满足打家劫舍条件的数组*      步骤3,按打家劫舍算法对数据进行处理(如取了[i]的值,则[i-1]和[i+1]两个相邻的数据都不能选)*/public int deleteAndEarn(int[] nums) {int maxValue = nums[0];for (int i = 0; i < nums.length; i++) {int temp = nums[i];maxValue = Math.max(maxValue, temp);}int[] tempNums = new int[maxValue+1];for (int j = 0; j < nums.length; j++) {int tempNum = nums[j];tempNums[tempNum] = tempNums[tempNum] + nums[j];}int p1 = tempNums[0];int p2 = Math.max(p1, tempNums[1]);int p3 = 0;for (int k = 2; k <tempNums.length; k++) {p3 = Math.max(p1 + tempNums[k], tempNums[k - 1]);p1 = tempNums[k - 1];p2 = p3;}return p3;}public static void main(String args[]) {Demo740 demo = new Demo740();int[] nums = {2,2,3,3,3,4};System.out.println(demo.deleteAndEarn(nums));}
}

这篇关于力扣740-删除并获得点数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/723782

相关文章

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

C#实现查找并删除PDF中的空白页面

《C#实现查找并删除PDF中的空白页面》PDF文件中的空白页并不少见,因为它们有可能是作者有意留下的,也有可能是在处理文档时不小心添加的,下面我们来看看如何使用Spire.PDFfor.NET通过C#... 目录安装 Spire.PDF for .NETC# 查找并删除 PDF 文档中的空白页C# 添加与删

SQL常用操作精华之复制表、跨库查询、删除重复数据

《SQL常用操作精华之复制表、跨库查询、删除重复数据》:本文主要介绍SQL常用操作精华之复制表、跨库查询、删除重复数据,这些SQL操作涵盖了数据库开发中最常用的技术点,包括表操作、数据查询、数据管... 目录SQL常用操作精华总结表结构与数据操作高级查询技巧SQL常用操作精华总结表结构与数据操作复制表结

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque